git常用的操作命令学习

提交。

从暂存区撤回修改
reset命令可以用来重置暂存区,主要用于被重置add的部分。如果add命令之后,这个文件有了其他修改,那么这些修改有可能会丢失。

git reset HEAD .
git reset HEAD foo.txt

保存修改
我们可以用stash命令,将工作区和暂存区的修改保存在一个储藏栈中。
git stash
恢复被储藏的修改
我们可以用这个命令将储藏的修改恢复到工作区中

git stash pop
//检查储存了哪些内容
git stash list

分支

执行切换分支的命令被拒绝该怎么办?
有时候如果工作区域还有一些修改,这个时候去切换分支,就会被拒绝。解决的方式有三种。第一种是提交现有的修改,然后切换。第二种是强制切换。第三种储藏的修改并切换分支。

  • 方式一
git commit --all
git checkout a-branch
  • 方式二
    git checkout --force a-branch
  • 方式三
git stash
git checkout a-branch
//做一些修改并提交,在切回原来的分支
git stash pop

重置分支指针
分支指针每一次提交时都会移动到最新的提交上。通常情况下不太需要去设置分支指针。但是有时候我们会丢失的钙质人的。追踪想要恢复到之前的状态,就需要通过重置分支指针来实现。注意它与
git reset --hard 39rt54b
注意这个命令会覆盖当前工作区和暂存区所有的修改,最好使用git stash 来储存一下修改。

合并分支

快速合并,开发者们在a分支下进行开发,而b分支上什么都不做。当b与a进行分支合并的时,git就变得非常简单。但是这样的合并并不会产生新的commit节点。
git merge --no--ff a-branch
这个命令可以强制产生一次新的提交。

变基操作

将git提交复制到其他地方,尽管修改与元数据保持不变。但是复制的结果会产生一个新的提交。这种方式被称为复制提交。通常复制提交有两个命令,git rebase和git cherry-pick
git rebase
通常这个命令你用来理顺历史提交,或者将一个分支上的提交复制到另一个分支上。
git rebase master --onto release1
解释: 当前分支是feature-a master是原分支 release1 目标分支。 git会确认活动分支上所有不属于原分支的提交,通过–onto选项将这些提交拷贝目标分支。如git学习指南上的60页图8-3
cherry-pick
摘樱桃,主要用于捡取操作。如将一些bug的修复传递到各个不同的发行版本中。还有另一种应用,从即将删除的分支中转移一些有用的提交。

版本标签

创建一个普通标签

git tag 1.0.0 master -m "发布的第一个版本"

推送某个单一标签

git push origin 1.0.0

查看某个特定的功能,或者bug修复是否包含在客户所安装的那个版本。

git tag --contains f63cd77

技巧

找回丢失的修改
git像一条狗,它闻出你的恐惧
git通常不会立即删除版本中的对象。无论什么时候,我们修改了一些东西也好。在版本库中始终是新建了一些对象而已。旧的对象都不会被删除,即使我们调用了gc命令。git 会持续跟踪一个分支上所发生的所有修改,并将这些所谓的日志存在logs目录下。可以通过–walk-reflogs选项来显示一个分支的本地记录。
git log --walk-reflogs mybranch
只要我们找到丢失的修改就可以通过cherry-pick命令和rebase命令将丢失的提交找回来。
忽略一些已被版本化的文件
通常我们不希望一些修改被版本化,我们可以临时性的忽略这个文件。

git update-index --assume-unchange  foo.txt
//暂时忽略这个文件。以后的add  或者 status  就不会被显示发生的修改
git update-index --really-refresh
//停止临时性忽略
发布了58 篇原创文章 · 获赞 16 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/dingshuhong_/article/details/89391315
今日推荐