zoukankan      html  css  js  c++  java
  • 公司版git完整版

    合理合适的利用git,会给自己以及团队带来很大的方便,相反,如果没有应用得当,就会让工作陷入整个的混乱之中
    
    话不多说,直接开讲
    
    假如项目工程叫 :feature
    
    
    1:如果是采用从网页端新建分支,会直接从远程仓库的master拉取分支,接着在本地、服务器上需要先在master分支上 git pull把master进行更新 git就会得到你已经从远程新建分支的信息 假如是change_sample。。。然后再 git checkout change_sample 就可以在本地新建change_sample分支并关联上远程的change_sample分支
    
    
    2:如果想用 git checkout -b change_sample 新建本地分支,并后续提交到远程仓库取,一定要现在本地 git pull把master进行更新,然后再git checkout -b change_sample,就会自动从远程最新的master新建一个分支,并且是最新的代码,并自动切换到新建的这个分支。。记住开发完成后需要往远程push这个分支,或者自己先像下面做下这步
    git add .
    git commit -m "change"
    git push origin change_sample
    
    
    3:  在开发时,一般是在本地进行开发代码,然后push到远程分支,然后从服务器上拉取这个分支的最新代码,这样子达到本地、服务器的统一
    git add .
    git commit -m "change"
    git pull origin change_sample  #将远程change_sample分支内容,合并到当前在的分支
    git push origin change_sample:change_sample     #完成在本地push到远程
    
    上面是从本地上发起的push到远程自己分支,接着需要自己服务器上也得到相应的修改(拉取最新分支代码)
    
    git checkout change_sample
    
    git pull origin change_sample
    
    如果在linux服务器上,切换到master,然后git pull这时候就能看到日志中显示zhouheng分支也被更新了,貌似这时候就不用再git pull origin change_sample,直接 git checkout change_sample即可
    
    
    
    四、完成开发后,会存在自己要push到远程上的操作,可以这样操作
    
    1:在本地
    git checkout master
    git pull                                //更新下master
    git checkout change_sample
    git merge master                //master分支合并到你的分支上,全部解冲突都在自己的分支上来,这样会更加安全些
    
    如果无误,一定要尝试下
    
    mvn clean install(现在处于 change_sample分支下),
    
    免得虽然没语法错误,但是却无法编译
    
    如果有冲突,就在ide中打开哪些冲突文件(在合并的时候,会打印出哪些文件有冲突),然后进行修改
    
    修改完后再,
    
    git add .
    git commit -m "change"
    git pull origin change_sample
    git push origin change_sample:change_sample
    
    
    上面已经解完冲突了,再切到master合并change_sample,然后push到远程master
    git checkout master
    git merge change_sample
    
    如果无误,在线下尝试下 mvn clean install,要保证合并到merge的代码可以正常编译
    ### 然后再push到远程上
    git add .
    git commit -m "change"
    git pull origin master
    git push origin master:master
    
    如果无误,一定要尝试下 mvn clean install(现在处于 master分支下),免得虽然没语法错误,但是却无法编译
    
     
    
    很多人在合并master的时候,在上面git pull完master,都是直接在master分支下直接合并change_sample,我对这种操作遇到的极端问题也做个解法
    假设合并后遇到pom文件的冲突,自己先修改后,修改完后  如果直接在本地(这时候是master分支) git pull或者git merge change_sample  都会报错说 -- **is not possible because you have unmerged files,同时查看自己的status  会看到自己的status是(master|MERGING),就像下面一样
    
    root@root MINGW64 D:/feature (master|MERGING)
    $ git pull
    error: Pulling is not possible because you have unmerged files.
    hint: Fix them up in the work tree, and then use 'git add/rm <file>'
    hint: as appropriate to mark resolution and make a commit.
    fatal: Exiting because of an unresolved conflict.
    
    root@root MINGW64 D:/feature (master|MERGING)
    $ git merge change_sample 
    error: Merging is not possible because you have unmerged files.
    hint: Fix them up in the work tree, and then use 'git add/rm <file>'
    hint: as appropriate to mark resolution and make a commit.
    fatal: Exiting because of an unresolved conflict.
    
    试下mvn clean install,检查下自己解好冲突的代码是否真正无冲突,如果有的话,就要谨慎去解,只修改报错的那几个文件的代码(比如增添函数等),千万不要在其他人的文件中进行修改(即使你依赖了其他人的文件),因为这样会给自己造成更多的冲突。。。要是多人合作一个项目,存在多人共写一个文件的情况,这种例外。。。完成后会发现自己的status还是(master|MERGING)
    git add .
    git commit -m "fix"
    git pull origin master
    git push origin master:master    ####这时候就合并master成功
    
    ####然后删除本地分支、远程分支
    git branch -d change_sample
    git push origin --delete change_sample
    
     
    
    在合并master的时候,在上面git pull完master,如果采用安全的方式也就是先切换到自己的分支,再合并master,解冲突的逻辑也跟上面一样,先把merge时候 在 交互界面打印出来的给解了,然后用mvn clean install进行尝试,一步步解完
    
     
    
    补充1:如何从指定分支copy到自己即将建立的分支上
    
    git checkout -b 自己即将建立的分支 origin/指定分支
    
    eg: git checkout -b shuaige origin/master
    
     
    
    补充2:如果在开发过程中,需要合并master的代码
    
    (1):先把当前分支push到远程 保证自己的分支上是完全干净的
    
    git add .
    git commit -m "change"
    git pull origin change_sample
    git push origin change_sample:change_sample
    
    git checkout master    切换到master
    
    git pull                         更新自己本地的master代码,保证和线上远程仓库一致
    
    git checkout change_sample     切换到要合并master的分支
    
    git merge master                    合并!
    
    合并完毕
  • 相关阅读:
    循环的中断
    创建.NET应用程序所经历的步骤
    完整的开发一个ContentProvider步骤
    Perl 基于OOP的数据库链接(增删改查)
    Perl 基于OOP的数据库链接(优化)
    Perl 基于OOP的数据库链接
    Perl oop链接数据库
    Perl oop研究
    PythonStudy——内存管理机制 Memory management mechanism
    博客园美化——Design by Venti
  • 原文地址:https://www.cnblogs.com/mofujin/p/12886116.html
Copyright © 2011-2022 走看看