综合

GIT使用

使用这个网站https://learngitbranching.js.org/?locale=zh_CN

git commit

提交一个新分支。

git commit –amend

提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录;或者你上一次的commit message的描述有误,这时候你可以使用接下来的这个命令:git commit –amend。

git checkout

切换分支或者让HEAD指向某个节点。

git merge

当前节点在A,git merge B后,会在A节点后创建一个包含B的分支。

git rebase

第二种合并分支的方法是 git rebase。Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。

Rebase 的优势就是可以创造更线性的提交历史,这听上去有些难以理解。如果只允许使用 Rebase 的话,代码库的提交历史将会变得异常清晰。

当前节点在A,git rebase B后,会在A节点后创建一个包含B的分支。

git rebase -i

在命令后增加了这个选项, Git 会打开一个 UI 界面并列出将要被复制到目标分支的备选提交记录,它还会显示每个提交记录的哈希值和提交说明,提交说明有助于你理解这个提交进行了哪些更改。

当 rebase UI界面打开时, 你能做3件事:

  • 调整提交记录的顺序(通过鼠标拖放来完成)
  • 删除你不想要的提交(通过切换 pick 的状态来完成,关闭就意味着你不想要这个提交记录)
  • 合并提交。

git rebase -i 开始节点 开始节点之后的节点会进入选择范围

相对引用

  • 使用 ^ 向上移动 1 个提交记录
  • 使用 ~<num> 向上移动多个提交记录,如 ~3

git checkout master ^ 移动到master上面

git checkout master ~2 移动到master上面的第2个记录

git reset

git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。

git reset matser^ 撤回到master上面记录

git revert

git reset不能用于远程分支,所以要使用git revert 创建一个新的分支,这个分支撤销了上一个分支的改变。与上上个分支的内容相同。

git revert master 在master后创建一个节点,与master上节点内容相同

git cherry-pick

将一些提交复制到当前所在的位置(HEAD)下面。与rebase类似,但这个指令可以选择多个节点并且不只是像rebase那样只能选择最后的节点

git cherry-pick <提交号>...

git clone

git clone 命令在真实的环境下的作用是在本地创建一个远程仓库的拷贝(比如从 github.com)

git fetch

git fetch 完成了仅有的但是很重要的两步:

  • 从远程仓库下载本地仓库中缺失的提交记录
  • 更新远程分支指针(如 o/master)

git fetch 实际上将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态。git fetch 并不会改变你本地仓库的状态。它不会更新你的 master 分支,也不会修改你磁盘上的文件。

git pull

先抓取更新再合并到本地分支,git pull 就是 git fetch 和 git merge 的缩写!

git push

git push 负责将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录。

git pull –rebase

git pull --rebase 就是 fetch 和 rebase 的简写!用于使本地分支的变更基于远程分支

发表评论