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

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

1. 倉(cāng)庫(kù)初配置

-- 本地倉(cāng)庫(kù)初始化
git init

-- 連接遠(yuǎn)程倉(cāng)庫(kù)
git remote add origin gitlab倉(cāng)庫(kù)地址

2. 提交代碼

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

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

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

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

注:
git push推送遠(yuǎn)程倉(cāng)庫(kù)的時(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í)沒(méi)有碰到這個(gè)問(wèn)題,后來(lái)去GitHub上建項(xiàng)目時(shí)就碰到了,但是通過(guò)提示的命令git branch --set-upstream master origin/<branch>并沒(méi)有解決問(wèn)題,后來(lái)參考了這篇博客才得以解決。具體我使用了以下命令:

此時(shí)如果origin的master分支上有一些本地沒(méi)有的提交,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

場(chǎng)景如下:
假設(shè)branch_20170903是當(dāng)前迭代的開發(fā)分支,b1_zhangsan是員工張三的開發(fā)分支(從branch_20170903上拉下來(lái)的),b2_lisi是員工李四的開發(fā)分支,同樣也是從迭代分支上拉下來(lái)的。
當(dāng)開發(fā)過(guò)了一周時(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í)候操作迭代分支,勢(shì)必會(huì)引起更多錯(cuò)誤,所以,如果將沖突放到本地,并解決之再提交merge,風(fēng)險(xiǎn)會(huì)降低很多。

所以我推薦的merge過(guò)程如下:

-- 首先本地倉(cāng)庫(kù)檢出迭代分支
git checkout branch_20170903
-- 將遠(yuǎn)程迭代分支上的代碼拉下來(lái)
git pull
-- 再檢出張三的開發(fā)分支
git checkout b1_zhangsan
-- 與迭代分支merge
git merge branch_20170903
-- 如果有沖突,會(huì)提示CONFLICT(content): Merge conflict in xxx
-- 通過(guò)git diff可以查看沖突所在的位置,但不是很直觀
-- 最直接的方法的是去IDE里面全局搜索“<<<<”或者“>>>>”,因?yàn)橛袥_突勢(shì)必有這些符號(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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,837評(píng)論 9 163
  • 本片內(nèi)容轉(zhuǎn)自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃兒閱讀 5,041評(píng)論 2 87
  • 你最常在下面哪個(gè)時(shí)間洗澡? 1、晚飯后洗澡 2、晚飯前洗澡 3、看完電視才洗澡 4、上床睡覺(jué)前才洗澡 5、早上起來(lái)...
    優(yōu)雅女神閱讀 913評(píng)論 0 0
  • 秋風(fēng)吹的很緊,狂卷著枯葉,裹挾著冷氣,呼嘯著、叫囂著,高傲的宣布這是他的世界。我們是凡人,斗不過(guò)他,不用一個(gè)回合便...
    盜木人閱讀 584評(píng)論 1 2
  • 初次見你。 第一次見你你是在大伯家,是我的兩個(gè)哥哥在放學(xué)的路上撿到了你并帶回了家,這可能就是緣分吧!那...
    珍惜回憶閱讀 282評(píng)論 0 0

友情鏈接更多精彩內(nèi)容