一、建立仓库
1、远端已有仓库
如远端已有代码仓库,只需将仓库clone到本地即可。打开终端,cd到你想放置代码仓库的位置,执行以下命令
git clone [url] // url为仓库地址
命令执行完成后,远端的代码仓库就已经clone到你本地了
2、建立代码仓库
如目前需要对某个项目开始使用git进行管理,可通过以下方式操作:
打开终端,cd到该项目的目录下,执行:
git init // 初始化
vim .gitignore // 生成并编辑忽略文件
touch README.md // 生成README文件
初始化完成后,在当前目录下会出现一个“.git”文件夹,所有Git需要的数据和资源都存放在这个目录中。为了后期方便多人协作,在初始化完成之后,会新建忽略文件(.gitignore)和 README.md 文件,你可以在忽略文件中配置不需要提交的内容,以防止在多人协作过程中出现不必要的代码冲突;README中可以写入与项目相关的信息,做备注用。
一般在开发过程中,我们会在远端建立好代码仓库(此时为空仓库),再clone到本地来,在本地配置好相关信息(如忽略文件等),最后将配置好的代码仓库提交到远端,到此代码仓库配置完毕,可以借助Git进行代码管理。例如我们使用gitlab来进行代码管理,就是遵从这样的流程。
二、Git常用命令
1、常用命令解释
1.1 git status:检查状态
查询repo的状态,执行该命令后,终端会展示出所有内容发生改变的文件。
git status -s: -s表示short, -s的输出标记会有两列,第一列是对staging区域而言,第二列是对working目录而言.
1.2 git add:添加改动文件
此命令将要提交的文件的信息添加到索引库中(将所有新增加或发生改动的文件存放到暂存区)。
git add documentation/test.txt // 单独将test.txt添加到索引库
git add documentation/ // 将documentation文件夹下所有发生改动或新增的文件信息添加到索引库
git add . // 将所有发生改动或新增的文件信息添加到索引库
此处仅列出部分常用命令,具体可以百度Git命令大全。
1.3 git commit:提交命令
此命令主要是将暂存区里的改动提交到本地版本库中,在每次使用该命令时都会在本地版本库中生成一个对应的40位哈希值,这个hash值也称为commit-id。commit-id在版本会退的过程中是非常有用的,用于指定某个版本(即某个版本的唯一标识)。执行此命令前,请先将所有改动提交到暂存区。
git commit -m"message" // message为此次提交的备注信息
git commit --amend // 追加提交,它可以在不增加一个新的commit-id的情况下将新修改的代码追加到前一次的commit-id中
1.4 git checkout:检出命令
该命令可用于检出分支(切换分支、创建分支)和回退之前的代码改动。
git checkout [分支名] // 切换到某个分支
git checkout -b [分支名] // 基于当前分支创建一个新的分支,请切换到该分支
git checkout document/test.txt // 放弃test文件的改动(未提交的改动)
git checkout . // 放弃当前目录下的修改
1.5 git branch: 查看分支
git branch // 不带参数:列出本地已经存在的分支,并且在当前分支的前面用"*"标记
git branch -r // 查看远程版本分支列表
git branch -a // 查看所有分支列表,包含本地和远端
git branch [分支名] // 停留在当前分支,同时基于当前分支创建一个新的分支
git branch -d [分支名] // 产出某个分支,不能删除当前分支
git branch -vv // 查看本地分支对应的远程分支
1.6 git push:将本地的提交推送到远端
git push 的一般形式为 git push <远程主机名> <本地分支名> <远程分支名>,例如:
git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名,第一个master是本地分支名,第二个master是远程分支名。
git push origin master // 如果远程分支被省略,则表示将本地分支推送到与之存在追踪关系的分支,如果该远程分支不存在,则会被重建
git push origin: refs/for/master // 如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin --delete master
git push origin // 如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略
git push // 如果当前分支只有一个远程分支,那么主机名都可以省略
1.7 git pull :拉取
该命令的作用是取回远程主机某个分支的更新,再与本地的指定分支合并。基本用法为 git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin master:brantest // 将远程主机origin的master分支拉取过来,与本地的brantest分支合并,后面的冒号部分可以省略;
git pull origin // 本地的当前分支自动与对应的origin
主机”追踪分支”(remote-tracking branch)进行合并,如果当前分支只有一个追踪分支,连远程主机名都可以省略;
git pull // 当前分支自动与唯一一个追踪分支进行合并;
1.8 git merge: 分支合并命令
git merge [分支名] // 将某个分支合并到当前分支
1.9 git tag: 标记命令
Git 可以对某一时间点上的版本打标签。
git tag // 列出现有标签
git tag -a [版本号] -m "[版本注释]" // 新增一个标签,并给以注释
2、Git常用流程
2.1、提交本地代码
(1)打开终端,cd到项目目录下
(2)git status // 检查代码变化情况
(3)git checkout -b [分支名] // 在本地子分支commit,为了后期能更方便的解决冲突
(4)git add . // 将所有变化提交到暂存区
(5)git commit -m"[附注]" // 将暂存区改动提交到版本库
(6)git checkout [之前的开发分支]
(7)git pull // 将本地代码更到最新
(8)git merge [之前commit的分支名] // 合并本次改动的代码
(9)git push // 将提交推送到远端
2.2、根据开发周期情况为代码标记版本
(1)打开终端,cd到项目目录下
(2)git tag -a [版本号] -m"[附注]"
(3)git push origin [版本号]
如果上述表述中有任何不合适或理解不到位的地方,请大佬们批评指正。
最后,非常感谢您的耐心阅读!