git 常用命令 學(xué)習(xí)

詳細(xì)git命令,請(qǐng)參考:git教程

1. 倉庫初配置

-- 本地倉庫初始化
git init

-- 連接遠(yuǎn)程倉庫
git remote add origin gitlab倉庫地址

2. 提交代碼

-- 提交代碼前最好查看一下本地代碼狀態(tài)
git status

-- 將新建文件添加到版本控制中
git add .
git add file

-- 提交代碼
git commit -m "提交描述"

-- 推送代碼到遠(yuǎn)程倉庫
-- 將本地的master分支推送到origin主機(jī)的master分支。如果master不存在,則會(huì)被新建。
-- 用了參數(shù)-u之后,以后就可以直接用不帶參數(shù)的git pull從之前push到的分支來pull。
git push -u origin master

注:
git push推送遠(yuǎn)程倉庫的時(shí)候,可能會(huì)碰到如下錯(cuò)誤:

There is no tracking information for the current branch. Please specify which branch you want to merge with.
See git -pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with 
git branch --set-upstream master origin/<branch>

當(dāng)時(shí)我在Gitlab上建項(xiàng)目(公司的demo),提交代碼時(shí)沒有碰到這個(gè)問題,后來去GitHub上建項(xiàng)目時(shí)就碰到了,但是通過提示的命令git branch --set-upstream master origin/<branch>并沒有解決問題,后來參考了這篇博客才得以解決。具體我使用了以下命令:

此時(shí)如果origin的master分支上有一些本地沒有的提交,push會(huì)失敗.
所以解決的辦法是, 首先設(shè)定本地master的上游分支:
git branch --set-upstream-to=origin/master

然后pull:
git pull --rebase

最后再push:
git push

3. 更好的提交方式

假設(shè)當(dāng)前有如下分支:

*b1_zhangsan
b2_lisi
branch_20170903
master

場景如下:
假設(shè)branch_20170903是當(dāng)前迭代的開發(fā)分支,b1_zhangsan是員工張三的開發(fā)分支(從branch_20170903上拉下來的),b2_lisi是員工李四的開發(fā)分支,同樣也是從迭代分支上拉下來的。
當(dāng)開發(fā)過了一周時(shí)間,張三的需求開發(fā)完成了,需要往遠(yuǎn)程分支b1_zhangsanpush推送代碼,然后將開發(fā)分支b1_zhangsan合并到branch_20170903迭代分支上。

當(dāng)然,我們完全可以這種順序提交,即

git add .
git commit -m ""
git push origin b1_zhangsan

但是這樣做會(huì)有一個(gè)缺陷,當(dāng)你merge到迭代分支branch_20170903上時(shí),會(huì)有一定幾率的代碼沖突。這時(shí)候沖突就發(fā)生在了整個(gè)迭代分支上,如果別人在這個(gè)時(shí)候操作迭代分支,勢必會(huì)引起更多錯(cuò)誤,所以,如果將沖突放到本地,并解決之再提交merge,風(fēng)險(xiǎn)會(huì)降低很多。

所以我推薦的merge過程如下:

-- 首先本地倉庫檢出迭代分支
git checkout branch_20170903
-- 將遠(yuǎn)程迭代分支上的代碼拉下來
git pull
-- 再檢出張三的開發(fā)分支
git checkout b1_zhangsan
-- 與迭代分支merge
git merge branch_20170903
-- 如果有沖突,會(huì)提示CONFLICT(content): Merge conflict in xxx
-- 通過git diff可以查看沖突所在的位置,但不是很直觀
-- 最直接的方法的是去IDE里面全局搜索“<<<<”或者“>>>>”,因?yàn)橛袥_突勢必有這些符號(hào),可以更快定位到?jīng)_突位置
-- 在IDE里面解決沖突,再重新提交
git add .
git commit -m "解決沖突"
git push origin b1_zhangsan
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容