日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git的团队协作开发

發布時間:2025/7/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git的团队协作开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

title: git的團隊協作開發
date: 2018-04-24 14:00:03
tags: [git]
---

項目負責人創建組織架構

在控制面板中點擊組織按鈕,添加組織,在這里可以把組織理解為一個公司
添加成功后,進入剛剛新建的組織
邀請他人加入----相當于公司成員
組織團隊可以進行分組,默認的Owners是管理組

項目負責人創建新的倉庫

創建新的倉庫。
打勾 該倉庫為私有的。
創建倉庫。

創建成功后,項目負責人下載git后,在需要上傳的文件夾中右鍵選中 Git Bash Here
依次運行:

git init #初始化git add . #添加到本地倉庫 . 表示全部當前文件夾中的所有文件和目錄 git commit -m "first commit" #添加后生效的必須提交 -m 后面的是提交的備注git remote add origin http://10.92.216.250:3000/test/test.git #連接我們新建的遠程倉庫git push -u origin master #將本地倉庫的所有推送到遠程倉庫,需要輸入帳號密碼

創建新的團隊

根據需要設置權限
進入剛剛新建的團隊,添加成員和相應的倉庫

分工協作之單支作業

小張:

git clone http://10.92.216.250:3000/test/test.git#直接將項目克隆到本地,可在D盤中運行該命令,成功后會出現一個test文件夾,然后就可以進行常規操作了

本地常規操作

小張在這個項目--test文件夾中新增了一個index.html文件
在該項目中右鍵選中 Git Bash Here

git add index.html #將index.html添加到本地倉庫中git status #這個是查看有多少添加但還沒提交的文件git commit -m '小張完成了index.html' #提交到本地倉庫

上面的過程的無限進行,添加,提交。注意這些操作都是在本地倉庫進行的

快下班了,小張準備把今天的開發全部推送到服務器

$ git remote #提交之前最好先看看服務器叫什么origin #這個origin就是使用git remote得到的遠程服務器的名稱$ git push origin master #將本地master推送到origin這臺主機上,默認名字相同的分支,即master

window 刪除警告

在使用git add . 命令時,出現如下提示:
warning: LF will be replaced by CRLF in XXXXX
意思是在XXXXX文件中,LF(換行,Line Feed)將會被CRLF(回車換行,CarriageReturn)替代。這是因為在windows中換行符為CRLF,而在linux下的換行符為LF。

rm -rf .git # 刪除.git git config --global core.autocrlf false #禁用自動轉換 git init git add .

忽略提交文件

在開發中,有時候git根目錄下有一些不需要add的文件或目錄,可以在根目錄添加一個 ".gitignore"文件

/mtk/ #過濾整個文件夾*.zip #過濾所有.zip文件/mtk/do.c #過濾某個具體文件echo "*.class" >> .gitignore #用命令行排除以.class結尾的文件

多人的時候

第二天老郭也來開發這個項目:

git clone http://10.92.216.250:3000/test/test.git#直接將項目克隆到本地,可在D盤中運行該命令,成功后會出現一個test文件夾,然后就可以進行常規操作了

取得最新的項目,老郭看到小張已經把index.html開發了。他就負責開發admin.html,這個時候小張也在開發index.css
老郭開發完admin.html后

git add admin.html #將index.html添加到老郭的本地倉庫中$git status #這個是查看有多少添加但還沒提交的文件git commit -m '老郭完成了admin.html' #提交到本地倉庫git remote #提交之前最好先看看服務器叫什么git push origin master #將本地master推送到origin這臺主機上,默認名字相同的分支,即master

這個時候小張的index.css也開發完成了:

$ git add index.css$ git status #$ git commit -m '小張完成了index.css' #提交到本地倉庫$ git remote #提交之前最好先看看服務器叫什么$ git push origin master #將本地master推送到origin這臺主機上,默認名字相同的分支,即mastererror:************** #報錯了

這是因為老郭已經提前提交了一次,現在小張多應的版本不是最新的,每次提交都要確保對應的最新版本

從遠程服務器拉取版本

小張知道原因后:

$ git pull #將遠程服務器中的最新版本拉下來,沒有文件沖突肯定就成功的,有沖突后面再說$ git push origin master #現在小張就提交成功了

以后小張也學聰明了,不過有幾個開發人員,反正每次push之前先pull最新的下來,然后再push
在小張push成功后,如果老郭又要push也需要先pull最新的下來,另外每次開發之前最好也pull一次,這樣
就可以在最新版本中開發,也就是開發前開發后都要pull

解決沖突

現在中梁也來開發這個項目了

git clone http://10.92.216.250:3000/test/test.git #直接將項目克隆到本地,可在D盤中運行該命令,成功后會出現一個test文件夾,然后就可以進行常規操作了

中梁開發了test.txt,

文件內容2222122222222

這個時候小張也在開發這個test.txt,

文件內容aaaaaaaaa

如果中梁開發得快,先push了,這個時候小張再push就會報沖突的錯誤,就算pull也拉不下來。

E:\work\test>git pushTo http://10.92.216.250:3000/test/test.git! [rejected] master -> master (non-fast-forward)error: failed to push some refs to 'http://10.92.216.250:3000/test/test.git'hint: Updates were rejected because the tip of your current branch is behindhint: its remote counterpart. Integrate the remote changes (e.g.hint: 'git pull ...') before pushing again.hint: See the 'Note about fast-forwards' in 'git push --help' for details.E:\work\test>git pullremote: Counting objects: 5, done.remote: Compressing objects: 100% (2/2), done.remote: Total 3 (delta 1), reused 0 (delta 0)Unpacking objects: 100% (3/3), done.From http://10.92.216.250:3000/test/test1ada640..dbb924c master -> origin/mastererror: Your local changes to the following files would be overwritten by merge:test.txtPlease commit your changes or stash them before you merge.AbortingUpdating 1ada640..dbb924c

在整個協作開發時,有時候會出現沖突。通常都是由于開發人員分工不明確導致的,所以如果出現這種情況,需要兩個程序員協商解決。
另外小張可以先

$ git stash #本地的所有修改就都被暫時存儲起來 。是用git stash list可以看到保存的信息Saved working directory and index state WIP on master: 1ada640 '222'$ git stash liststash@{0}: WIP on master: 1ada640 '222' #其中stash@{0}就是剛才修改保存的標記$ git pull #現在就能pull下來了$ git stash pop stash@{0} #還原暫存的內容Auto-merging test.txtCONFLICT (content): Merge conflict in test.txt #系統自動合并修改的內容,但是其中有沖突,需要手動解決。

打開沖突的文件test.txt

文件內容<<<<<<< Updated upstream2222122222222=======aaaaaaaaa>>>>>>> Stashed changes

系統不知道要保留中梁的,還是報錯小張的
這個時候經過協商,把文件改為

文件內容222aaa222

然后小張:

$ git add test.txt$ git commit -m '合并了test文件內容'$ git push origin master

現在不管是老,中,少三人還是更多的開發者,都可以按照這個流程完成所有開發

分工協作之多分支

在之前的開發中,適用于小團隊,如果大團隊就需要多分支來管理。

分支的基本操作

分支的基本操作$ git branch #查看分支* master #有*的就是當前分支$ git branch test #創建test分支$ git checkout test #切換到test分支,然后可以在該分支進行常規的開發和操作,$ git checkout -b test #創建并切換分支$ touch test2.txt #創建一個test2的文件夾$ git add test2.txt$ git commit -m '小張在新分支test中創建了一個text2.txt文件'$ git push origin test #注意,這里是把本地的test分支推送到origin遠程主機上,這里是后面省略了 (:test)$ git checkout master #切換到主分區$ git merge test #合并指定分支到當前分支$ git branch -d test #刪除test分支 git推送本地分支到遠程分支 場景 有時候我們開發需要開一個分支,這樣可以有效的并行開發. 開分支有兩種方式: 一種是在遠程開好分支,本地直接拉下來; 一種是本地開好分支,推送到遠程. 遠程先開好分支然后拉到本地 git checkout -b feature-branch origin/feature-branch //檢出遠程的feature-branch分支到本地 本地先開好分支然后推送到遠程 $ git checkout -b feature-branch //創建并切換到分支feature-branch $ git push origin feature-branch:feature-branch //推送本地的feature-branch(冒號前面的)分支到遠程origin的feature-branch(冒號后面的)分支(沒有會自動創建)

分支管理

這波操作后gogs 上倉庫就有新的test分支了
項目管理員可以在倉庫設置中->管理分支->保護分支->把給主分支開啟保護

其他人可以在其他分支中創建合并請求

該倉庫管理團隊的成員可以點擊合并進行合并,有沖突也可以在gogs 上點擊 編輯(小筆)解決沖突后合并。

轉載于:https://www.cnblogs.com/CGCong/p/9375774.html

總結

以上是生活随笔為你收集整理的git的团队协作开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。