首页 > 其他 > 详细

Git使用方法详解

时间:2021-08-12 23:44:01      阅读:45      评论:0      收藏:0      [点我收藏+]

Git是目前世界上最先进的分布式版本控制系统!

主流的版本控制器有如下这些:

  • Git(影响力最大使用最广泛)
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Microsoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visual Studio Online

版本控制分类:

  1. 本地版本控制
    • 记录文件的每次更新,可以对每个版本做一个快照,或者是记录补丁文件,适合个人用,例如RCS。
  2. 集中版本控制
    • 所有版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。
    • 如果不联网,用户就看不到历史版本,无法切换版本验证问题或在不同分支工作。代表产品:SVN、CVS、VSS
  3. 分布式版本控制
    • 所有版本信息仓库同步到本地的每个用户(每个人拥有全部代码),可以在本地看到所有的历史记录,可以离线在本地提交,只需在联网时push到响应的服务器或其他用户那里。
    • 只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。
    • 不会因为网络问题而造成不能工作的情况。

一、安装Git及环境配置

下载网址:Git

1.1 先卸载

在安装之前首先确保已经卸载:

  1. 直接反安装即可
  2. 清理环境变量
    安装过程:无脑下一步。

1.2 启动Git

安装成功后开始菜单中有以下三个程序;任意文件夹下右键也可以看到对应的程序。
技术分享图片

  • Git Bash: Unix与Linux风格的命令行,使用最多,推荐最多。
  • Git CMD: Windows风格的命令行。
  • Git GUI: 图形界面的Git,不建议初学者使用,尽量先熟悉常用命令。

1.3 Git的必要配置

所有的配置文件都保存在本地

查看当前关于Git的所有配置:

git config -l

查看Git的系统相关配置:

git config --system --list

查看本地Git相关配置(用户配置):

git config --global --list

Git相关的配置文件:

  1. Git\etc\gitconfig : Git安装目录下的gitconfig --system 系统级
  2. C:\Users\Administrator\.gitconfig : 只适用于当前登录用户的配置 --global 全局

配置用户信息(用户名与邮箱,必要配置)

git config --global user.name "Sino"
git config --global user.email "12345678@qq.com"

只需做一次这个设置,传递了--global选项,Git将总是会使用该信息来处理在系统中做的一切操作。如果希望在特定项目中使用不同的名称或email地址,可以在该项目中运行此命令而不要--global选项。

二、Git基本理论(核心)

2.1 工作区域

Git本地有三个工作区域:

  1. 工作目录(Working Directory)

    • 工作区,平时存放项目代码的地方。
  2. 暂存区(Stage/Index)

    • 用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息。
  3. 资源库(Repository或Git Directory)

    • 仓库区(或本地仓库),安全存放数据的位置,这里有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。
  4. 如果再加上远程的git仓库(Remote Directory)就可以分为四个工作区域。

    • 远程仓库,托管代码的服务器,可以简单地认为是你项目组中的一台电脑用于远程数据交换。

转换关系如下图:
技术分享图片
技术分享图片

  • Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。
  • WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间。
  • .git:存放Git管理信息的目录,初始化仓库的时候自动创建。
  • Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区。
  • Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。
  • Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。

2.2 工作流程

Git的工作流程一般是这样的:

  1. 在工作目录中添加、修改文件;
  2. 将需要进行版本管理的文件放入暂存区域;
  3. 将暂存区域的文件提交到Git仓库
    因此,Git管理的文件有三种状态:已修改(midified)、已暂存(staged)、已提交(committed)

三、Git项目搭建

3.1 创建工作目录与常用指令

日常使用记住下图6个命令:
技术分享图片
本地仓库搭建:
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。

创建全新的仓库,需要用GIT管理的项目的根目录执行:

  1. 在当前目录新建一个Git代码库

    $ git init
    

    执行后可以看到,仅仅在项目目录多出了一个.git目录,关于版本等的所有信息都在这个目录里面。

  2. 克隆远程仓库
    另一种方式是克隆远程目录,由于是将远程服务器上的仓库完全镜像一份至本地!

    $ git clone [url]  # https://gitee.com/sino/test.git
    

3.2 Git的基本操作命令

3.2.1 查看文件状态

# 查看指定文件状态
git status [filename]

# 查看所有文件状态
git status

# 添加所有文件到暂存区
git add .

# 提交暂存区中的内容到本地仓库 -m 提交信息
git commit -m "消息内容"

3.2.2 忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等。
在主目录下建立.gitignore文件,此文件有如下规则:

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,...})代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
*.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的temp文件,不包括其它目录temp
build/       #忽略build/目录下的所有文件
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

四、Gitee相关使用

  1. 注册登录
  2. 设置本机绑定SSH公钥,实现免密码登录
# 进入 C:\Users\Administrator\.ssh 目录
# 生成公钥
ssh-keygen

技术分享图片
3. 将公钥信息public key添加到码云账户中即可
4. 使用码云创建一个自己的仓库

五、Git分支

git分支中常用的命令:

# 列出所有本地分支
git branch

# 列出所有远程分支
git branch -r

# 新建一个分支,但依然停留在当前分支
git branch [branch-name]

# 新建一个分支,并切换到该分支
git checkout -b [branch]

# 合并指定分支到当前分支
$ git merge [branch]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

# 切换到指定分支,并更新工作区
$ git checkout [branch-name]

# 切换到上一个分支
$ git checkout -

master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。

Git使用方法详解

原文:https://www.cnblogs.com/I-am-Sino/p/15135124.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!