最近工作的需要,經常出沒於大大小小的項目團隊當中,他們在項目版本管理工具方面,一直都離不開SVN。但為跟上時代的步伐,很多項目團隊都開始轉向使用Git,但很多人反映git很難用,甚至花了大量的時間在同步代碼和提交代碼。所以我在這里總結了幾點。
1. 遠程庫與本地庫
很多人對這兩個東西搞到腦瓜疼。簡單來說,
- 遠程庫,就等於代碼的來源處。例如,某A程序員寫了一個項目,某天他邀請你加入他的團隊一齊開發,然后你克隆了他的代碼到你的電腦進行開發。這樣某A程序員的代碼,就成為了你的遠程庫,成為了你的根,git稱這個為origin.
- 本地庫,就是你克隆某A程序員的代碼后,進行的代碼更改,代碼增加。
2.提交代碼
git每次提交代碼,都必須執行add和commit,這兩個命令其實就是對你本地庫的操作,說白了,就是對自己的代碼進行操作,並沒有對項目中的其它人造成影響。
- add,把代碼放到緩沖區,准備同步到我本地庫里面
- commit, 把緩沖區里面的代碼,存到版本庫里面,添加一個變更記錄
3.推送本地代碼到你的遠程庫
經過一段時間的commit之后,本地庫就會有很多關於你對整個項目的修改記錄,但系如果你不把這些代碼推送到去你的根,他們是無法知道你改了什么,所以在團隊開放當中,你需要下一步的命令,pull 和push
- pull就是把遠程庫中的改動同步到本地,看看別人更改的代碼與你的代碼庫有什么代碼的沖突
- push就是把你的代碼同步到遠程庫,使遠程庫中的代碼,與你一致
那為什么很多push都會被拒絕,或者失敗呢,因為要先pull別人的代碼下來,看看與你的有什么沖突,有沖突,先把沖突的話,必須把有沖突的代碼進行合並了,才能重新push到遠程庫。這樣就能保證,你push的代碼不會覆蓋別人代碼。
總結,項目團隊開發同步代碼的過程就是 add -> commit -> pull -> push