BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #27817同步于 2013/11/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

GIT到底怎么用...

LwoShen
2013/11/19镜像同步18 回复
比如一个工程,俩人现在已经同步了。 然后今天我们都改了代码,都有增删改,那么谁先上传谁后上传有区别吗? 还是需要A上传了以后B pull下来 ,再PUSH?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
Neverwinter机器人#1 · 2013/11/19
有区别 是
LwoShen机器人#2 · 2013/11/19
那就是说 每个人在push之前 都要先pull看看是不是东西变了? 那比如说A和B都改了123.txt B pull了A以后 B在本机的改动会被覆盖吗? 【 在 Neverwinter (nez@Atlantis) 的大作中提到: 】 : 有区别 : 是
Neverwinter机器人#3 · 2013/11/19
【 在 LwoShen 的大作中提到: 】 : 那就是说 每个人在push之前 都要先pull看看是不是东西变了? : 那比如说A和B都改了123.txt B pull了A以后 : B在本机的改动会被覆盖吗? : ................... 不一定要先pull,可以直接执行push,如果别人已经先push上去,你做push会失败并且有提示的 当然,先pull再push就万无一失 pull的时候,要求你本地所有的修改都做了提交。然后pull其实是两个操作的组合,第一个是fetch,第二个是merge或者rebase,具体是哪个取决与你当前分支的upstream设置,不过最后效果是除了提交历史不同外,文件内容是一样的。 如果两个人都改了同一个文件,pull时git会尝试自动合并,如果有冲突(比如两人改了同一个文件的同一个地方,但改得不一样),就会有提示,需要手动解决冲突并做提交。
LwoShen机器人#4 · 2013/11/19
好的 ,感谢你的帮助! 另外一个问题 我的项目之前push上去的时候包含了 bin文件夹 这个文件夹每次都变 太占地 所以我用eclipse ignore了 加入了.gitignore文件 但是现在用eclipse commit还是会提交这个文件 要怎么办? 【 在 Neverwinter (nez@Atlantis) 的大作中提到: 】 : 不一定要先pull,可以直接执行push,如果别人已经先push上去,你做push会失败并且有提示的 : 当然,先pull再push就万无一失 : pull的时候,要求你本地所有的修改都做了提交。然后pull其实是两个操作的组合,第一个是fetch,第二个是merge或者rebase,具体是哪个取决与你当前分支的upstream设置,不过最后效果是除了提交历史不同外,文件内容是一样的。 : ...................
shenlei机器人#5 · 2013/11/19
我觉得你先看一下入门的文章比较好 再有就是去看一看 版本控制之道-git 这本书 【 在 LwoShen (lwoshen) 的大作中提到: 】 : 好的 ,感谢你的帮助! : 另外一个问题 我的项目之前push上去的时候包含了 bin文件夹 : 这个文件夹每次都变 太占地 : ...................
LwoShen机器人#6 · 2013/11/19
好 我去看看 pro git吧 【 在 shenlei (我爱果子|[路]|[天山南北]) 的大作中提到: 】 : 我觉得你先看一下入门的文章比较好 : 再有就是去看一看 版本控制之道-git 这本书
wyq机器人#7 · 2013/11/20
为啥你现在懂这么多。。 【 在 shenlei (我爱果子|[路]|[天山南北]) 的大作中提到: 】 : 我觉得你先看一下入门的文章比较好 : 再有就是去看一看 版本控制之道-git 这本书
shenlei机器人#8 · 2013/11/20
工作中有用到而已 【 在 wyq (梦幻西游Oibyr♀紫@刷天下|[路]偏将军) 的大作中提到: 】 : 为啥你现在懂这么多。。
Andier机器人#9 · 2013/11/20
通常两个(多个)人push的流程: 1. A和B两个人一开始都clone了remote branch_0, 2. A和B分别有了的code change 3. A先git commit再git push。(这是remote branch_0更新为remote branch_1) 4. B先git stash再git pull --rebase再git stash apply 5. B然后git commit再git push 重点是第4步其中几个环节。 git stash是把你本地code change先藏起来 git pull --rebase是把remote branch_1上所有的changes都pull下来,merge到本地branch_0,再把本地branch "base"到remote branch_1上(之前本地branch指向的是remote branch_0) git stash applly是把你之前藏起来的changes再apply到你更新过的branch上面。如果没有冲突这步自动结束。如果有冲突会把冲突写到code里面,你打开冲突的文件自己merge。 希望有帮助。有错误请指正。