Git多人協作的工作模式、命令、提交、拉取遠程代碼 ---- 實踐篇

1、 初始化,通過git init命令把這個目錄變成Git可以管理的倉庫

thinkerdeMacBook-Airt:dev thinker$ git init
Initialized empty Git repository in /Users/thinker/Documents/code/dev/.git/

2、與遠程分支建立連接

thinkerdeMacBook-Air:dev thinker$ git remote add origin [email protected]:xxxxxxx.git

3、把分支拉取到本地(dev 爲遠程倉庫的分支名)

thinkerdeMacBook-Air:dev thinker$ git fetch origin dev
remote: Enumerating objects: 916, done.
remote: Counting objects: 100% (916/916), done.
remote: Total 916 (delta 169), reused 555 (delta 169)
Receiving objects: 100% (916/916), 2.18 MiB | 5.57 MiB/s, done.
Resolving deltas: 100% (169/169), done.
From code.aliyun.com:xxxxxxx

  • branch dev -> FETCH_HEAD
  • [new branch] dev -> origin/dev

4、查看本地分支

thinkerdeMacBook-Air:dev thinker$ git branch

5、查看遠程分支

thinkerdeMacBook-Air:dev thinker$ git branch -a
remotes/origin/dev

6、把遠程代碼拉取到本地

thinkerdeMacBook-Air:dev thinker$ git pull origin dev
From code.aliyun.com:youhuayang/vanke-lingbao-meihaojia

  • branch dev -> FETCH_HEAD

7、查看git狀態

thinkerdeMacBook-Air:dev thinker$ git status
On branch master
nothing to commit, working tree clean

8、修改index.vue文件後再次查看狀態

thinkerdeMacBook-Air:dev thinker$ git status
On branch master
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: clientCode/admin/src/view/basicManagement/theBusinessArea/index.vue

no changes added to commit (use “git add” and/or “git commit -a”)

9、用命令git add告訴Git,把文件添加到倉庫

thinkerdeMacBook-Air:dev thinker$ git add .

10、用命令git commit告訴Git,把文件提交到倉庫

thinkerdeMacBook-Air:dev thinker$ git commit -m"xiugai"
[master 9c9f8dd] xiugai
1 file changed, 1 insertion(+)

11、再次查看git狀態

thinkerdeMacBook-Air:dev thinker$ git status
On branch master
nothing to commit, working tree clean

16、把本地庫的所有內容推送到遠程庫上,用git push命令,實際上是把當前分支dev推送到遠程

thinkerdeMacBook-Air:dev thinker$ git push origin dev
error: src refspec dev does not match any
error: failed to push some refs to ‘[email protected]:xxxxxx.git’
thinkerdeMacBook-Air:dev thinker$ git branch
*master
thinkerdeMacBook-Air:dev thinker$ git checkout dev
Branch ‘dev’ set up to track remote branch ‘dev’ from ‘origin’.
Switched to a new branch ‘dev’

17、查看當前分支

thinkerdeMacBook-Air:dev thinker$ git branch
*dev
master

18、把遠程庫的所有內容拉取到本地

thinkerdeMacBook-Air:dev thinker$ git pull origin dev
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Total 7 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (7/7), done.
From code.aliyun.com:youhuayang/vanke-lingbao-meihaojia
*branch dev -> FETCH_HEAD
c299e0e…abf0424 dev -> origin/dev
Updating c299e0e…abf0424
Fast-forward
…/vanke-lingbao-meihaojia/mehos-sys-server/pom.xml | 18 ++++++++++++++++++
serverCode/vanke-lingbao-meihaojia/pom.xml | 20 ++++++++++++++++++++
2 files changed, 38 insertions(+)
thinkerdeMacBook-Air:dev thinker$ git status
On branch dev
Your branch is up to date with ‘origin/dev’.

nothing to commit, working tree clean
thinkerdeMacBook-Air:dev thinker$ git status
On branch dev
Your branch is up to date with ‘origin/dev’.

Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: clientCode/admin/src/view/basicManagement/theBusinessArea/index.vue

no changes added to commit (use “git add” and/or “git commit -a”)
thinkerdeMacBook-Air:dev thinker$ git add .
thinkerdeMacBook-Air:dev thinker$ git branch
*dev
master
thinkerdeMacBook-Air:dev thinker$ git commit -m "thinker"
[dev 5fbb055] thinker
1 file changed, 1 insertion(+)
thinkerdeMacBook-Air:dev thinker$ git status
On branch dev
Your branch is ahead of ‘origin/dev’ by 1 commit.
(use “git push” to publish your local commits)

nothing to commit, working tree clean
thinkerdeMacBook-Air:dev thinker$ git push origin dev
Enumerating objects: 17, done.
Counting objects: 100% (17/17), done.
Delta compression using up to 4 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 742 bytes | 742.00 KiB/s, done.
Total 9 (delta 6), reused 0 (delta 0)
To code.aliyun.com:xxxxxx.git
abf0424…5fbb055 dev -> dev
thinkerdeMacBook-Air:dev thinker$ git status
On branch dev
Your branch is up to date with ‘origin/dev’.

nothing to commit, working tree clean

以上一系列的操作,最終將本地修改後的代碼與遠程庫中的代碼進行合併 並推送到遠程庫中
以下的是重新做的測試,修改index.vue文件,先是將遠程庫中的代碼拉取到本地,進行合併,若是有衝突則手動解決衝突,衝突解決之後,再此保存通過git push origin <branch name>推送到遠程庫中

thinkerdeMacBook-Air:dev thinker$ git status
On branch dev
Your branch is up to date with ‘origin/dev’.

Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: clientCode/admin/src/view/basicManagement/theBusinessArea/index.vue

no changes added to commit (use “git add” and/or “git commit -a”)
thinkerdeMacBook-Air:dev thinker$ git add .
thinkerdeMacBook-Air:dev thinker$ git commit -m "修改測試"
[dev 13547d7] 修改測試
1 file changed, 1 deletion(-)
thinkerdeMacBook-Air:dev thinker$ git pull origin dev
From code.aliyun.com:youhuayang/vanke-lingbao-meihaojia
*branch dev -> FETCH_HEAD
Already up to date.
thinkerdeMacBook-Air:dev thinker$ git status
On branch dev
Your branch is ahead of ‘origin/dev’ by 1 commit.
(use “git push” to publish your local commits)

nothing to commit, working tree clean

19、把本地庫的所有內容推送到遠程庫上,用git push命令,實際上是把當前分支dev推送到遠程

thinkerdeMacBook-Air:dev thinker$ git push origin dev
Enumerating objects: 17, done.
Counting objects: 100% (17/17), done.
Delta compression using up to 4 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 745 bytes | 745.00 KiB/s, done.
Total 9 (delta 6), reused 2 (delta 0)
To code.aliyun.com:xxxxxx.git
5fbb055…13547d7 dev -> dev

多人協作的工作模式:

  • 1.首先,可以試圖用git push origin <branch-name>推送自己的修改;

  • 2.如果推送失敗,則因爲遠程分支比你的本地更新,需要先用git pull試圖合併;

  • 3.如果合併有衝突,則解決衝突,並在本地提交;

  • 4.沒有衝突或者解決掉衝突後,再用git push origin <branch-name>推送就能成功!

如果git pull提示no tracking information,則說明本地分支和遠程分支的鏈接關係沒有創建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

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