從gitlab拉取代碼及提交代碼流程

以前在小公司實習,只需要簡單提交代碼,沒有涉及代碼分支,請求合併分支等,現在入職到大公司,代碼規範要求較高,且多人協作開發,這一必須的技能要會,手忙腳亂之餘,終於搞懂了整個流程。

第一個疑問:我從gitlab上面拉代碼的時候要不要切分支?

git clone代碼之前,可以直接拉取master分支上的代碼,master分支的代碼要求時刻處於部署的狀態,是完整的。

代碼拉下來之後,本地代碼也處於master分支,這個時候我git checkout develop創建了一個本地的develop分支,此時查看所有的分支是這樣的:

接着,我創建了一個本地分支:

git checkout -b feature-aa 結果:Switched to a new branch 'feature-aa'

接下來,我要把這個分支提交上去:

然後去gitlab上面操作,發送合併代碼請求

之所以創建本地分支,是我在代碼編寫過程中,不能直接在master分支上做代碼修改,因此在創建的本地分支上面對代碼進行修改。 

 

再來補充一下整體流程:

(1)將自己在本地分支上的修改放在暫存區,git stash(git stash 項目完成一部分,需要跳轉分支,可以用來保存當前分支上修改的代碼,把當前分支還原到上一次commit的狀態)。

(2)切換到develop分支,git pull,將代碼拉下來,看是否有衝突;有衝突解決衝突,沒有衝突,繼續進行。

(3)切換到原先開發的本地分支,將修改的代碼從暫存區拿出來;git stash pop

(4)git add .

(5)git commit -m 'aa'

(6)git push origin fixbug-dl: fixbug-dl

git push <遠程主機名> <本地分支名>:<遠程分支名>

PS:注意,分支推送順序的寫法是<來源地>:<目的地>,所以git pull是<遠程分支>:<本地分支>,而git push是<本地分支>:<遠程分支>。

(7)刪除遠程自己創建的分支:git push origin --delete fixbug-dl

(8)去GitLab發merge request

 

不錯的一篇文章:https://www.cnblogs.com/JennyLin77/p/git.html

1、在項目文件目錄下,打開Git Bash Here;

 

 

2、使用git add命令,將我們要提交的文件信息(包括有修改過和新建的文件)添加到索引庫。輸入以下命令:

git add .

3、使用git commit命令,根據索引庫的內容進行文件的提交。輸入以下命令:

git commit -m "commit the user's jade"

4、新建本地分支:git branch <branchname>,輸入命令:

git branch xf

5、查看該項目的所有本地和遠程分支:git branch -a ,並在當前所在分支前加"*"標記

拓展:git branch 查看本地分支

git branch -r 查看遠程分支

此處,我們查看所有分支,包括遠程和本地,故輸入命令:(該步驟可省略)

git branch -a

6、切換本地分支:git checkout <分支名>,輸入以下命令:

git checkout xf

7、把遠程分支的代碼pull到本地分支:git pull <遠程主機名> <遠程分支名>:<本地分支名>

如:取回origin主機的xf分支,與本地的xf分支合併,輸入命令:

git pull origin xf:xf

遠程主機名可通過上方的git branch -a或git branch -r查詢,看下圖:

PS:push代碼前最好先用pull更新本地代碼。

8、最後一步:git push <遠程主機名> <本地分支名>:<遠程分支名>

PS:注意,分支推送順序的寫法是<來源地>:<目的地>,所以git pull是<遠程分支>:<本地分支>,而git push是<本地分支>:<遠程分支>。

eg: 

git push origin xf:xf
上面命令表示,將本地的xf分支推送到origin主機的xf分支。

如果省略遠程分支名,則表示將本地分支推送與之存在"追蹤關係"的遠程分支(通常兩者同名),如果該遠程分支不存在,則會被新建。

eg: git push origin test

上面命令表示,將本地的test分支推送到origin主機的test分支。如果後者不存在,則會被新建。

PS:提交遠程分支有三種方式,我用的是下面第一種方法,大家有空也可以試下另外兩種。

1. add並且commit,再checkout,提交到當前分支;

2. add但不commit,可以stash,然後checkout回來之後stash apply,在commit,提交到當前分支;

3. add但不commit,也不stash,直接checkout,然後再commit,(提交)記錄就在切換分支下面。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章