**:**自:
這些事情都可以先在本地開 local branch 做,而不需要立即 push 分享給別人。
開 branch 最大的好處除了可以不影響 stable 和其他分支版本的開發,另乙個超棒的地方是」你可以決定 merge 的方式」。git 的 merge 方式可以分成四種:
git merge
合併另乙個 branch,若沒有 conflict 衝突會直接 commit。若需要解決衝突則會再多乙個 commit。
git merge --squash
將另乙個 branch 的 commit 合併為一筆,特別適合需要做實驗的 fixes bug 或 new feature,最後只留結果。合併完不會幫你先 commit。
git cherry-pick 321d76f 只合併特定其中乙個 commit。如果要合併多個,可以加上 -n 指令就不會先幫你 commit,這樣可以多 pick幾個要合併的 commit,最後再 git commit 即可。
使用 merge 可能會有部分程式碼會 conflict 衝突:簡單的情況只要編輯檔案處理 <<<< ***** >>>>> 即可,然後重新 add 到 staging area 並 commit (沒有像 svn 的 resolve 指令)。複雜一點的可以再用 git mergetool 選檔案合併的 gui 工具 (os x 下面可以用 opendiff, linux 可以用 kdiff3 ),處理好後 git commit。
一旦 merge 好了,git branch -d
可以刪除 branch。但如果要刪除的 branch 還沒有合併,就會有錯誤訊息。如果真的要強制刪除可以用 -d
git 的 working tree 是從 svn 換過來乙個不習慣的地方,因為它只是乙個工作暫存區,在切換 branch 時就會整個換掉。也因為如此,如果有檔案有修改還沒有 commit 出去,切換 branch 時就會出現 error 不能切換(除非是新的 untracking 檔案),例如有修改還沒 add 會出現 error: entry 'ooxx』 not uptodate. cannot merge. 有修改且已經add(還沒ci)會出現 error: entry 'ooxx』 would be overwritten by merge. cannot merge.
登入到伺服器, 尋找合適位置, 建立 test.git 目錄. 然後初始化乙個空倉庫, 以此作為伺服器上的主倉庫.
git --bare init --sharedgit-init 命令的 --bare 選項可以讓 test.git 目錄等價於乙個倉 庫. 也就是說, test.git 本來是乙個工作樹, 但是 --bare 選項將本應當存放在 test.git/.git 中的倉庫內容全部放置在 test.git 目錄下, 就好像倉庫完全的裸露在工作樹中, 所以稱之為赤裸的倉庫.
將自己機器上已經接受 git 管理的倉庫推送到剛剛建立的遠端倉庫.
git push user@somewhere:~/path/test.git master此時, 所有人就可以通過 git-clone 命令在本地建立工作目錄
git clone user@somewhere:~/path/test.git
伺服器上已經建立了 test 倉庫. 現在以一位開發人員的角度熟悉一下一天的工作流程.
首先, 需要更新自己機器上的工作樹, 並檢視其他成員的版本更新資訊.
git pull在本地建立乙個新的專案分支, 如 develop 並將當前分支切換為該分支.git log
git branch develop好了, 現在就能在自己建立的專案分支上完成開發工作了. 一天的工作完成後, 有必要將這一天的工作與 test 倉庫的 master 分支進行合併, 然後刪除 develop 分支.git checkout develop
git checkout這樣, 開發人員就已經將這一天的工作反應到自己機器上的 test master 分支上了. 如果還需要推送到遠端倉庫, 需要注意, 在推送版本更新之前, 需要使用 git-pull 命令將這一天其他成員對伺服器端的更新拉過來合併到自己的 master 分支, 然後才能將自己的版本更新推送出去.git merge develop
git branch -d develop
在個人開發時新建乙個分支, 能較好地避免因個人操作不當而導致向伺服器提交太多的髒資料. 另外, 也有效保持了本地專案的乾淨, 避免頻繁 git-clone 伺服器端的倉庫來恢復本地的專案分支.
git 常見命令
針對易混淆的命令進行簡要的回顧 git checkout 分支名 主要的就是切換到乙個分支上,可以對乙個分支的更新或者是還原。換一種說話就是遷出乙個分支的特定版本。預設是遷出分支的 head版本。示例 git checkout master 取出master版本的head。git checkout ...
git常見命令
檢視 新增 提交 刪除 找回,重置修改檔案 git help 顯示command的help git show 顯示某次提交的內容 git show id git co 拋棄工作區修改 git co 拋棄工作區修改 git add 將工作檔案修改提交到本地暫存區 git add 將所有修改過的工作檔案...
git 常見命令
日常開發中我們經常用到git來進行協同開發的工作 以下便記錄一些常用的git命令 方便忘記的時候查詢 git branch test 建立分支 如果需要刪除的分支不是當前正在開啟的分支,使用branch d直接刪除 git branch d git branch 檢視分支 git checkout ...