git高级命令学习记录

重写commit历史


将提交应用到最后一次commit中

git commit --amend -m "更新说明"[ 有时候做了一个小的更改,不想单独弄出来一个commit,那就可以使用此命令,直接将当前这一次commit与上一次commit合并生成一个新的commit ]

整理本地的commit(未push的commit)

git rebase -i HEAD~3[其中 -i表示启用交互模式,~3表示最近的三次commit ]

运行过上述命令之后会出现如下所示的内容,要保证第一个是pick,即采用这一次commit的内容,最终会把这三次的合并成一个commit,包含三次提交的所有内容,详细介绍请参照官网,或者阅读下方的说明,这里仅做一次命令的记录,
pick表示使用本次commit,squash或者s表示不使用本次提交

   pick f7f3f6d changed my name a bit
   pick 310154e updated README formatting and added blame
   pick a5f4a0d added cat-file

   # Rebase 710f0f8..a5f4a0d onto 710f0f8
   #
   # Commands:
   #  p, pick = use commit
   #  r, reword = use commit, but edit the commit message
   #  e, edit = use commit, but stop for amending
   #  s, squash = use commit, but meld into previous commit
   #  f, fixup = like "squash", but discard this commit's log message
   #  x, exec = run command (the rest of the line) using shell
   #
   # These lines can be re-ordered; they are executed from top to bottom.
   #
   # If you remove a line here THAT COMMIT WILL BE LOST.
   #
   # However, if you remove everything, the rebase will be aborted.
   #
   # Note that empty commits are commented out

经过整理之后,保存并推出编辑模式,会弹出合并后的提示信息,再保存推出,就会将所有的commit合并成一个或多个commit,可以通过 git log查看整理后的commit

注:如果这些commit已经push到服务器中,则强烈建议不要手贱,除非不怕被队友打死。

调试功能


git bisect start[开始进行调试]

git bisect bad[告诉git当前commit是bad,即出问题的commit]

git bisect good [commitid][在告诉git哪一个commit是good,即在哪一个commit上代码是正常的,然后git就会在当前的commit和good commit之间进行二分查找,git会根据二分查找法先切换到一个commit-a上,本地进行调试验证,并将验证结果告诉git,即git bisect good/bad,告诉git当前的commit-a是好的或者坏的,标记完之后,git会继续根据二分查找法切换到另一个commit上,依次类推,最终git会找出第一次出现错误的commit,然后我们就可以定位出现问题的commit,并进行相应的错误检查]

git bisect reset[调试完毕之后,在执行一遍此命令,会将你带回到正常的状态,否则会停留在一个奇怪的分支中]

GIT远程分支


git push origin [本地分支名称]:[远程分支名称][将本地的指定分支推送到远程仓库origin上作为远程分支,如果远程分支已存在则会自动合并,如果不存在,则会在远程创建一个远程分支]

git pull origin [远程分支]:[本地分支][将远程仓库中指定分支的内容拉取到本地的指定分支上]

git push origin --delete [远程分支][删除指定的远程分支]

git checkout --track origin/serverfix[以指定的远程分支为基础在本地创建一个与远程分支同名的分支]

git checkout -b sf origin/serverfix[以指定的远程分支为基础在本地创建一个分支(可以自己指定一个与远程分支不同的名称)]

git branch -u origin/serverfix[将当前分支与指定分支建立追踪关系]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值