美文网首页
git协同工作

git协同工作

作者: 狗狗胖妞 | 来源:发表于2019-06-20 11:36 被阅读0次

1. git pull和git fetch的区别

参考文档(很详细): https://blog.csdn.net/weixin_41975655/article/details/82887273

2.简单对比git pull和git pull --rebase的使用

参考文档: https://www.jianshu.com/p/478d912946df

git pull = git fetch + git merge FETCH_HEAD 

git pull --rebase =  git fetch + git rebase FETCH_HEAD 

3. git本地分支与远程分支关联

参考文档: https://blog.csdn.net/u012216131/article/details/84256384

把本地新建分支同步到远程分支上(该分支在远程上没有)

#推荐

git push --set-upstream origin branch_name
#或者简写
git push -u origin branch_name
#不推荐
git push origin branch_name      //将分支推到远程仓库,但没有建立关联
git branch --set-upstream-to=origin/branch_name   //建立关联

在本地把远程分支上新建分支同步到本地(本地没有该分支)

#方法1, 推荐
git fetch origin test_branch
git checkout --track origin/test_branch

#方法2
git fetch origin test2_branch:test2_branch
git checkout  test2_branch
git branch --set-upstream-to=origin/test2_branch  //建立关联

git fetch origin test2_branch:test2_branch这个命令的意思就是拉取远程的一个叫test2_branch的分支,并在本地创建一个叫test2_branch的分支和远程的分支匹配

4.合并分支推荐--no-ff

参考文档: https://www.jianshu.com/p/418323ed2b03
--no-ff指的是强行关闭fast-forward方式。
fast-forward方式就是当条件允许的时候,git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commit

git merge --squash 是用来把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用--squash进行合并,此时文件已经同合并后一样了,但不移HEAD,不提交。需要进行一次额外的commit来“总结”一下,然后完成最终的合并。

总结:
--no-ff:不使用fast-forward方式合并,保留分支的commit历史
--squash:使用squash方式合并,把多次分支commit历史压缩为一次

Ethan@Ethan-PC MINGW64 /d/gitlab_projects/Service_monitor (master)
$ git branch -d songjw_add_sql
Deleted branch songjw_add_sql (was d8cf54a).
Ethan@Ethan-PC MINGW64 /d/gitlab_projects/Service_monitor (master)
$ git log --graph --oneline
*   5d717ba (HEAD -> master, origin/master) Merge remote-tracking branch 'origin/songjw_add_sql'
|\
| * d8cf54a 上传监控配置文件
|/
* 59837fe 一处错误
* 2d684e6 修改数据库执行的结果判断使报警准确,因为当数据库执行失败时,其返还的结果也是为0的
* 9264e84 业务监控

5.把几个commit点合成一个

参考文档: https://blog.csdn.net/u013276277/article/details/82470177
如下,我想把test_branch分支合并到master上,但是这个分支上的commit点比较乱,我想把前面两个commit保留,后面3个commit合为一个:

1.该分支需要整理的几个commit


2.git rebase -i 51c3ac5
修改为如下内容:

wq保存后跳出如下界面让你修改合并后的commit信息:

修改后的commit信息:

该分支合并commit后的日志:

3. 合并到主分支上

相关文章

  • git协同工作

    1. git pull和git fetch的区别 参考文档(很详细): https://blog.csdn.net...

  • git 多人协同工作 2018-11-07

    # git 多人协同工作 1. 从远程仓库上克隆 `dev` 分支; ``` $ git clone -b...

  • Why git or GitHub?

    为什么要学习Git与GitHub? Git是如今协同工作的最好的载体,学习Git是为了今后工作的便携与方便,如今在...

  • git svn协同工作

    svn作为一个优秀源码版本的管理工具,可以适合绝大多数项目。但是因为它的采用中心化管理,不可避免的存在本地代码的备...

  • git工作流

    先上图,后讲解 git工作流,什么是git工作流,个人觉得这个就是一个使用git协同开发的规范,有了这个规范可以很...

  • Git的使用以及Git协同工作流的选择

    Git的使用以及Git协同工作流的选择 [TOC] 为什么要使用Git Git 是一个分布式的版本管理工具,而且可...

  • Git基于Git Flow流程协同开发

    git flow 在多版本协同开发中的作用不言而喻,这里有关于git flow工作流程的梳理其实弄清楚git fl...

  • 生成ssh密钥

    在工作中一般都会协同开发来进行开发,git是当下比较流行的版本控制工具,由于在git使用https协议,每次pul...

  • Android Studio 与Git 上传项目与下载项目流程

    Android Studio 多人协同开发(Git版)——Windows平台 一、首次上传项目流程: 安装Git(...

  • GIT代码管理规范

    2017/05/16 Git简介 git是一种较为先进的代码版本管理及协同工作平台,采用分布式文件块存储: 分布式...

网友评论

      本文标题:git协同工作

      本文链接:https://www.haomeiwen.com/subject/qfovfctx.html