基础操作
1.git init : 初始化仓库
实际建立一个目录并初始化仓库,如果初始化成功了在该目录下就会生成.git目录,代码如下:
$ mkdir git-tutorial
$ cd git-tutorial
$ git init
在 Git 中,我们将这个目录的内容称为“附属于该仓库的工作树”。文件的编辑等操作在工作树中进行,然后记录到仓库中,以此管理文件的历史快照。如果想将文件恢复到原先的状态,可以从仓库中调取之前的快照,在工作树中打开。开发者可以通过这种方式获取以往的文件。
2.git status : 查看仓库的状态
工作树和仓库在被操作的过程中,状态会不断发生变化。在 Git 操作过程中时常用 git status命令查看当前状态,可谓基本中的基本。有没有可提交的内容也可以通过此命令查看
3.git add : 向暂存区中添加文件
如果只是用 Git 仓库的工作树创建了文件,那么该文件并不会被记入 Git 仓库的版本管理对象当中。要想让文件成为 Git 仓库的管理对象,就需要用 git add命令将其加入暂存区(Stage 或者 Index)中。暂存区是提交之前的一个临时区域。
4.git commit : 保存仓库的历史记录
git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。
如果只是记录一行提交信息的话,执行以下命令就可以了,-m参数后是对这个提交的概述:
$ git commit -m "First commit"
刚才我们只简洁地记述了一行提交信息,如果想要记述得更加详细,请不加 -m,直接执行 git commit命令。执行后编辑器就会启动。
在编辑器中记述提交信息的格式如下:
● 第一行:用一行文字简述提交的更改内容
● 第二行:空行
● 第三行以后:记述更改的原因和详细内容
只要按照上面的格式输入,今后便可以通过确认日志的命令或工具看到这些记录。另外,如果在编辑器启动后想中止提交,请将提交信息留空并直接关闭编辑器,随后提交就会被中止。
5.git log : 查看提交日志
查看以往仓库中提交的日志。包括可以查看什么人在什么时候进行了提交或合并,以及操作前后有怎样的差别。
6.git diff : 查看更改前后的差别
可以查看工作树、暂存区、最新提交之间的差别。这个命令可以帮助我们养成一个好习惯在执行 git commit命令之前先执行git diff HEAD命令,查看本次提交与上次提交之间有什么差别,等确认完毕后再进行提交。
分支的操作
1.基础概念
在进行多个并行作业时,我们会用到分支不同分支中,可以同时进行完全不同的作业。等该分支的作业完成
之后再与 master 分支合并,通过灵活运用分支,可以让多人同时高效地进行并行开发。
2.git branch : 显示分支一览表
可以将分支名列表显示,也可以查看我们当前所在的项目 分支左侧标有“*”(星号),表示这是我们当前所在的分支。
3.git checkout -b :
如果想以当前的 master 分支为基础创建新的分支,我们需要用到这个命令。
● 切换到 feature - A 分支并进行提交
$ git checkout -b feature-A
OR
$ git branch feature-A
$ git checkout feature-A
● 切换至某个分支,如master分支
$ git checkout master
4.特性分支
特性分支顾名思义,是集中实现单一特性(主题),除此之外不进行任何作业的分支。在日常开发中,往往会创建数个特性分支,同时在此之外再保留一个随时可以发布软件的稳定分支。
5.主干分支
特性分支顾名思义,是集中实现单一特性(主题),除此之外不进行任何作业的分支。在日常开发中,往往会创建数个特性分支,同时在此之外再保留一个随时可以发布软件的稳定分支。
6.git merge : 合并分支
切换回主干分支,执行对应命令即可合并
$ git checkout master
$ git merge --no-ff feature-A
7.git log –graph : 以图表形式查看分支
用 git log –graph命令进行查看的话,能很清楚地看到特性分支(feature-A)提交的内容已被合并。除此以外,特性分支的创建以及合并也都清楚明了。
更改提交的操作
1.git reset : 回溯历史版本
要让仓库的 HEAD、暂存区、当前工作树回溯到指定状态,需要用到 git rest –hard命令。只要提供目标时间点的哈希值,就可以完全恢复至该时间点的状态。(哈希值的获取暂时不清楚)
2.git commit –amend : 修改提交信息
3.git rebase -i : 压缩历史
推送至远程仓库
1.git remote add : 添加远程仓库
2.git push : 推送至远程仓库
$ git push -u origin master
像这样执行 git push命令,当前分支的内容就会被推送给远程仓库origin 的 master分支。-u参数可以在推送的同时,将origin仓库的master分支设置为本地仓库当前分支的 upstream(上游)。添加了这个参数,将来运行 git pull命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从 origin 的 master 分支获取内容,省去了另外添加参数的麻烦。
$ git checkout -b feature-D
我们在本地仓库中创建了 feature-D 分支,现在将它 push 给远程仓库并保持分支名称不变。
从远程仓库获取
1.git push : 获取远程仓库
2.git pull : 获取最新的远程仓库分支