git命令 本地

基础命令

提交

提交git commit
提交-包含信息git commit -m "message"
提交-省去add携带信息快速提交git commit -a -m "message"
提交-包含代码微改不希望上次提交记录同步git commit --amend

分支

创建分支git branch <NAME>
切换分支git checkout <NAME>
创建并切换分支git checkout -b <NAME>

合并

合并分支git merge <目标分支名称> --目标分支与当前分支不同
合并到主分支git merge <目标分支名称> --必要条件,当前分支为主分支

合并–创造线性的提交历史

注:把目标分支里的工作直接移到当前分支上。移动以后会使得两个分支的功能看起来像是按顺序开发,但实际上它们是并行开发的。

git rebase <目标分支>

高级命令

分离HEAD

git checkout <历史记录的hash值>

相对引用

注:通过指定提交记录哈希值的方式在 Git 中移动不太方便。在实际应用时,并没有像本程序中这么漂亮的可视化提交树供你参考,所以你就不得不用 git log 来查查看提交记录的哈希值。

并且哈希值在真实的 Git 世界中也会更长(译者注:基于 SHA-1,共 40 位)。例如前一关的介绍中的提交记录的哈希值可能是 fed2da64c0efc5293610bdd892f82a58e8cbc5d8。舌头都快打结了吧…

比较令人欣慰的是,Git 对哈希的处理很智能。你只需要提供能够唯一标识提交记录的前几个字符即可。因此我可以仅输入fed2 而不是上面的一长串字符。

使用相对引用的话,你就可以从一个易于记忆的地方(比如 bugFix 分支或 HEAD)开始计算。
相对引用非常给力,这里我介绍两个简单的用法:

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

父级有多条分支可以使用 ^<num>进行选择,父级分支按先后顺序排列

撤销变更

在 Git 里撤销变更的方法很多。和提交一样,撤销变更由底层部分(暂存区的独立文件或者片段)和上层部分(变更到底是通过哪种方式被撤销的)组成。我们这个应用主要关注的是后者。

主要有两种方法用来撤销变更

 git reset # 本地撤销,在reset后, C2 所做的变更还在,但是处于未加入暂存区状态。
 git revert # 远程同步撤销,在我们要撤销的提交记录后面会多一个新提交!这是因为新提交记录 C2引入了更改 —— 这些更改刚好是用来撤销 C2 这个提交的。也就是说 C2' 的状态与 C1 是相同的。revert 之后就可以把你的更改推送到远程仓库与别人分享

自由移动提交记录

  • git cherry-pick …
  • git rebase -i <名称>

git rebase -i的使用说明

参数 --interactive 的 rebase 命令, 简写为 -i。

Git 会打开一个 UI 界面并列出将要被复制到目标分支的备选提交记录,它还会显示每个提交记录的哈希值和提交说明,提交说明有助于你理解这个提交进行了哪些更改。在实际使用时,所谓的 UI 窗口一般会在文本编辑器 —— 如 Vim —— 中打开一个文件。
当 rebase UI界面打开时, 你能做3件事:

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

提交的技巧

使用自由移动提交记录的两种方法实现。主要用于提交顺序,记录是否删除

里程碑的使用

创建里程碑git tag <NAME>(不加任何信息,为轻量级的tag)
查找最近里程碑git describe [NAME] --tags – 缺省值为当前记录
tag有轻量级的和携带信息的
使用git tag 查看当前所有的tag。
查看tag详细信息显示可以使用 git tag -l --format='%(refname:short) %(type) %(creatordate:short)'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值