当前位置:   article > 正文

git命令_git review

git review

查看分支:不带参数,查看本地已经存在的分支,并且在当前分支的前面有 * 标记;

git branch

后面加上 -a 参数可以查看所有分支列表,包括本地和远程,远程分支一般会用红色字体标记出来
如果用git branch -a没有显示全部的远程分支,可以通过git fetch将本地远程跟踪分支进行更新,与远程分支保持一致。

后面加上 -vv 参数可以显示本地所有分支追踪(关联)的远程分支的情况,最后面是最近一次提交commit的注释。

分支创建:

git branch test

git branch 后面加上新建的分支名 (branchname) 即可完成本地分支的建立(分支内容与master一样,因为在新建分支时的当前所处分支为master(*标识) ,也即你是基于master新建的test分支),并且此分支仅存在于本地。

切换分支:

git checkout (branchname)

新建分支并切换一步即可;

git checkout -b test2

切换到远程分支:

比如说我现在test1分支,想查看远端test2的代码(此时本地会新建并切换一个分支,当然你可以把这个本地的分支名设置成与远端同名)

git checkout -b [local name] [origin name]

关联分支:

本地新建的分支,需要关联远程的某个分支才能 push 成功,否则会出现一下报错,关联命令会自动提示,按提示关联远程分支后会在远端新建一个同名的远程分支:

删除分支:

删除远程分支:

git push origin --delete test2

删除本地分支:注意不能删除当前所在分支,不然会报错,只能删除非当前分支

git branch -d test2

push命令:git push

接下来演示提交代码的整个流程:

首先在gittee上创建一个自己的仓库

将其colne到本地

 

创建并切换到本地分支:

 将上传的文件放到里面,这里我放的1.txt

接下来就是

git add .

git commit -m "  "

git push其中需要建立和远程分支的联系复制提示即可

如果需要将dev分支合并到master上

先切换到master上,再使用

git merge dev

merge和rebase的区别

1、采用merge和rebase后,git log的区别,merge命令不会保留merge的分支的commit,rebase会保留所有的commit

rebase会把你当前分支的 commit 放到公共分支的最后面,所以叫变基。就好像你从公共分支又重新拉出来这个分支一样。
举例:如果你从 master 拉了个feature分支出来,然后你提交了几个 commit,这个时候刚好有人把他开发的东西合并到 master 了,这个时候 master 就比你拉分支的时候多了几个 commit,如果这个时候你 rebase master 的话,就会把你当前的几个 commit,放到那个人 commit 的后面。
 

merge 会把公共分支和你当前的commit 合并在一起,形成一个新的 commit 提交

2、处理冲突的方式:

1.(一股脑)使用merge命令合并分支,解决完冲突,执行git add .git commit -m'fix conflict'。这个时候会产生一个commit。

2.(交互式)使用rebase命令合并分支,解决完冲突,执行git add .和git rebase --continue,不会产生额外的commit。这样的好处是,‘干净’,分支上不会有无意义的解决分支的commit;坏处,如果合并的分支中存在多个commit,需要重复处理多次冲突。


使用git-review 提交代码

git-review安装

  1. apt-get install git-review # ubuntu
  2. yum install git-review # centos
  3. pip install git-review # python方式安装

git-review配置

添加gerrit用户名

 git config --global gitreview.username gerritadmin

代码工程添加 .gitreview配置文件
.gitreview

  1. [gerrit]
  2. host=192.168.3.57
  3. port=29418
  4. project=mec-demo
  5. defaultbranch=dev

提交代码

新增代码

  1. gerrit@node-33:~/gerrit/mec-demo$ git add .
  2. gerrit@node-33:~/gerrit/mec-demo$ git status
  3. On branch test
  4. Changes to be committed:
  5. (use "git reset HEAD <file>..." to unstage)
  6. new file: test123
  7. gerrit@node-33:~/gerrit/mec-demo$ git commit -m "new file"
  8. [test 3f7515b] new file
  9. 1 file changed, 0 insertions(+), 0 deletions(-)
  10. create mode 100644 test123
  11. # 每次提交前都要和要提交到的分支对齐,有冲突的话需要解决冲突
  12. gerrit@node-33:~/gerrit/mec-demo$ git fetch origin dev:dev
  13. gerrit@node-33:~/gerrit/mec-demo$ git rebase dev
  14. Current branch review/unknown/test is up to date.
  15. gerrit@node-33:~/gerrit/mec-demo$ git review -c -v

patch 代码

在原分支上

  1. gerrit@node-33:~/gerrit/mec-demo$ git branch
  2. dev
  3. * test
  4. gerrit@node-33:~/gerrit/mec-demo$ git status
  5. On branch test
  6. nothing to commit, working directory clean
  7. gerrit@node-33:~/gerrit/mec-demo$ echo "test" >> test123
  8. gerrit@node-33:~/gerrit/mec-demo$ git status
  9. On branch test
  10. Changes not staged for commit:
  11. (use "git add <file>..." to update what will be committed)
  12. (use "git checkout -- <file>..." to discard changes in working directory)
  13. modified: test123
  14. no changes added to commit (use "git add" and/or "git commit -a")
  15. gerrit@node-33:~/gerrit/mec-demo$ git add .
  16. gerrit@node-33:~/gerrit/mec-demo$ git commit --amend
  17. # 每次提交前都要和要提交到的分支对齐,有冲突的话需要解决冲突
  18. gerrit@node-33:~/gerrit/mec-demo$ git fetch origin dev:dev
  19. gerrit@node-33:~/gerrit/mec-demo$ git rebase dev
  20. Current branch review/unknown/test is up to date.
  21. gerrit@node-33:~/gerrit/mec-demo$ git review -c -R -v
  22. .......
  23. To ssh://gerritadmin@192.168.3.57:29418/mec-demo
  24. * [new branch] HEAD -> refs/for/dev/test

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/68266
推荐阅读
相关标签
  

闽ICP备14008679号