git常用命令

1、先切换分支到master

git checkout master

2、目前正处于主干上,执行命令,将分支从最后一个commit合并到主干上

git rebase --onto cb4023015fff0d7fe6677bc24bd24deafe7a7d0e

3、如果只想合并指定commit,不包含其他commit的话,使用

git cherry-pick  cb4023015fff0d7fe6677bc24bd24deafe7a7d0e

 

二、合并分支A到分支B(此时B为master角色)

1、先进入分支B

git checkout B

2、使用合并命令

git merge A

3、合并完成,解决冲突即可。 

 

三、git创建分支并提交到远程服务器。

git branch test。创建分支test

git checkout test 。切换到test分支

git checkout -b test。创建分支test并切换到test分支

git push origin test。提交到远程分支test

 

查看两个分支之间的改变,并将结果保存起来
git diff commit_id1 commit_id2 >> update.diff

合并某个commit到指定分支
git log # 查看commit_id
git checkout my_branch # 切换到指定分支
git cherry-pick commit_id # 将commit_id的提交合并到当前分支


合并一系列的commits到指定分支
假设需要合并feature分支上的commit1 ~ commit4 到master

首先,基于feature分支创建一个新的分支,并指定最后的commit_id:
git checkout -b newbranch commit4

然后,rebase这个新分支的commit到master(--ontomaster)。commit1^ 指明从哪个特定的commit开始:
git rebase --onto master commit1^

 

git 对比两个commit 之间的差异

比较两个版本之间的差异

git diff commit-id-1 commit-id-2 > d:/diff.txt

结果文件diff.txt中:

"-"号开头的表示 commit-id-2 相对 commit-id-1 减少了的内容。
"+"号开头的表示 commit-id-2 相对 commit-id-1 增加了的内容。

git删除本地分支和删除远程分支

引言:

  切换分支的时候命令打错了,git checkout 后面没有跟分支名,结果git status,很多delete的文件,直接冒冷汗,git add ,commit 之后发现本地与远程确实是删除了很多文件,之前也有过一次,当时是从新换了一个目录重新拉代码。。。麻烦的很

  把情况告诉了同事,给了我建议,删除这个分支,重新拉,于是开始了此操作。

具体操作:

  我现在在dev20181018分支上,想删除dev20181018分支

  1 先切换到别的分支: git checkout dev20180927

  2 删除本地分支: git branch -d dev20181018

  3 如果删除不了可以强制删除,git branch -D dev20181018

  4 有必要的情况下,删除远程分支:git push origin --delete dev20181018

  5 在从公用的仓库fetch代码:git fetch origin dev20181018:dev20181018

  6 然后切换分支即可:git checkout dev20181018

  注:上述操作是删除个人本地和个人远程分支,如果只删除个人本地,请忽略第4步

 

git 对比两个分支差异

比如我们有 2 个分支:master, dev,现在想查看这两个 branch 的区别,有以下几种方式:

1.查看 dev 有,而 master 中没有的:

git log dev ^master 
  •  

同理查看 master 中有,而 dev 中没有的内容:

git log master ^dev
  •  

这里写图片描述

2.查看 dev 中比 master 中多提交了哪些内容:

git log master..dev
  •  

注意,列出来的是两个点后边(此处即dev)多提交的内容。同理,想知道 master 比 dev 多提交了什么:

git log dev..master
  •  

这里写图片描述

3.不知道谁提交的多谁提交的少,单纯想知道有什么不一样:

git log dev...master
  •  

这里写图片描述

4.在上述情况下,再显示出每个提交是在哪个分支上:

git log --left-right dev...master
  •  

这里写图片描述

注意 commit 后面的箭头,根据我们在 –left-right dev…master 的顺序,左箭头 < 表示是 dev 的,右箭头 > 表示是 master的。

截图中表示这三个提交都是在 master 分支上的

你可能感兴趣的:(git,git)