关闭

Git使用技巧笔记

标签: git
568人阅读 评论(0) 收藏 举报
分类:

主要记录一些Git使用的一些问题,以备日后查阅


分支管理


分支合并的几种区别

合并图

  • fast-forward模式(git merge): 如果HEAD在分支的父节点上,这样可以进行”快进方式”,直接移动HEAD到合并分支的头。
  • 关闭fast-forward模式(git merge --no-ff): 不使用fast-forward模式,在当前分支自动创建一个commit合入所有分支的修改。
  • squash模式(git merge --squash): 把多次分支commit历史压缩生成一个commit,当前分支需要一次额外的commit来提交,移动HEAD。适合把local分支的一系列commit合并到一个正式的commit。因为会产生一个新的commit,所以它不适合用在remote分支之间做merge,否则每次merge回来的时候,又出现一个重复的commit。


git reset的几种区别

  • git reset --soft : 移动HEAD到某一个commit,所有的working tree,index(stage) file 都不会变化,这样可以合并多个commit成一个来提交,清理历史。
  • git reset --hard : 回退HEAD到某一个commit,连working tree,index(stage) file也都会回退。
  • git reset --mix : default模式,重置HEAD和index(stage) file,所有从original HEAD到你重置到的那个commit之间的所有变更仍然保存在working copy中,被标示为已变更,但是并未staged的状态


git merge的语法

  • git merge -X ours master:
    pick our branch if conflict and merge for non-conflict.

  • git merge -X theirs master :
    pick master if conflict and merge for non-conflict.

  • git merge -s ours master :
    pick all ours and drop master.


git 分支管理,这个讲的比较清楚


对于已经发布的分支为什么不应该用rebase


git diff的几种区别

  • git diff : Shows the changes between the working directory and the index. This shows what has been changed, but is not staged for a commit.
  • git diff --cached : Shows the changes between the index and the HEAD(which is the last commit on this branch). This shows what has been added to the index and staged for a commit.
  • git diff HEAD : Shows all the changes between the working directory and HEAD (which includes changes in the index). This shows all the changes since the last commit, whether or not they have been staged for commit or not.


全局diff配置文件C:\Users\xxx\.gitconfig

比较多个文件,用git difftool --cached --dir-diff

[diff]
    tool = bc3
[difftool]
    prompt = false
[difftool "bc3all"]
    cmd = "git difftool --tool=bc3 \"$REMOTE\" &"
[difftool "bc3"]
    cmd = \"d:/program files (x86)/beyond compare 3/bcomp.exe\" -expandall -solo \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = bc3
[mergetool]
    prompt = false
[mergetool "bc3"]
    cmd = "\"d:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:88580次
    • 积分:1454
    • 等级:
    • 排名:千里之外
    • 原创:49篇
    • 转载:0篇
    • 译文:0篇
    • 评论:41条
    最新评论