合理合适的利用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 合并! 合并完毕
原文:https://www.cnblogs.com/mofujin/p/12886116.html