git的团队协作开发
title: git的團隊協作開發
date: 2018-04-24 14:00:03
tags: [git]
---
項目負責人創建組織架構
在控制面板中點擊組織按鈕,添加組織,在這里可以把組織理解為一個公司
添加成功后,進入剛剛新建的組織
邀請他人加入----相當于公司成員
組織團隊可以進行分組,默認的Owners是管理組
項目負責人創建新的倉庫
創建新的倉庫。
打勾 該倉庫為私有的。
創建倉庫。
創建成功后,項目負責人下載git后,在需要上傳的文件夾中右鍵選中 Git Bash Here
依次運行:
創建新的團隊
根據需要設置權限
進入剛剛新建的團隊,添加成員和相應的倉庫
分工協作之單支作業
小張:
git clone http://10.92.216.250:3000/test/test.git#直接將項目克隆到本地,可在D盤中運行該命令,成功后會出現一個test文件夾,然后就可以進行常規操作了本地常規操作
小張在這個項目--test文件夾中新增了一個index.html文件
在該項目中右鍵選中 Git Bash Here
上面的過程的無限進行,添加,提交。注意這些操作都是在本地倉庫進行的
快下班了,小張準備把今天的開發全部推送到服務器
$ git remote #提交之前最好先看看服務器叫什么origin #這個origin就是使用git remote得到的遠程服務器的名稱$ git push origin master #將本地master推送到origin這臺主機上,默認名字相同的分支,即masterwindow 刪除警告
在使用git add . 命令時,出現如下提示:
warning: LF will be replaced by CRLF in XXXXX
意思是在XXXXX文件中,LF(換行,Line Feed)將會被CRLF(回車換行,CarriageReturn)替代。這是因為在windows中換行符為CRLF,而在linux下的換行符為LF。
忽略提交文件
在開發中,有時候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后
這個時候小張的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在整個協作開發時,有時候會出現沖突。通常都是由于開發人員分工不明確導致的,所以如果出現這種情況,需要兩個程序員協商解決。
另外小張可以先
打開沖突的文件test.txt
文件內容<<<<<<< Updated upstream2222122222222=======aaaaaaaaa>>>>>>> Stashed changes系統不知道要保留中梁的,還是報錯小張的
這個時候經過協商,把文件改為
然后小張:
$ 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的团队协作开发的全部內容,希望文章能夠幫你解決所遇到的問題。