前言:今天剛剛把開發環境配好,真是興奮,開啟git——clone 修改了** pull push 好像檔案沒有更新成功,頁面沒有變化,囧了,然後我就不停在那邊pull來pull去,push來push去,結果還是沒有解決問題。終於我發現使用git管理和**真的是完全不一樣,管理會3個就行了,clone\pull\push,但是**好像沒那麼簡單。git的缺點:漏洞百出的抽象在園子裡找了一些資料,整理下。
git 包含太多不是抽象的抽象,在定義使用者介面和實現上經常沒有任何區別,這是可以理解的,對乙個高階使用者來說他需要了解一些功能的具體實現,以掌握各個命令的 微妙之處。但大量的內部細節對初學者來說簡直是噩夢。有這麼乙個說法,關於水暖器材和瓷器,但你必須成為乙個水暖工才能知道器材如何安裝在瓷器上。
很多人對我的抱怨予以回應說:你無需使用所有的命令,你可以向 subversion 一樣來使用 git。這是狡辯,就好比是告訴乙個老奶奶說高速公路並不可怕,她可以在高速路上靠左邊的快車道上以時速 20 公里爬行,一樣的道理。git 並沒有提供任何有用的子集,每個命令都會連帶著對其他命令的要求,很簡單的動作經常需要很複雜的動作來撤銷或者改進。
下面是乙個 github 專案維護者的一些善意的建議:
1. 在分支和 master 上尋找合併的基準: 『git merge-base master yourbranch』
2. 假設你已經提交了更改記錄,從對你的提交重新基準化到合併準,然後建立乙個新分支
3. git rebase –onto head~1 head
4. git checkout -b my-new-branch
5. 檢出你的 ruggedisation 分支,然後移除提交: 『git reset –hard head~1′
6. 合併新的分支到 ruggedisation: 『git merge my-new-branch』
7. 檢出 master (『git checkout master』), 合併新分支 (『git merge my-new-branch』), 然後檢查合併後的情況,接著移除合併 (『git reset –hard head~1′).
8. 提交新的分支 (『git push origin my-new-branch』) 並記錄 pull 請求
翻譯:「奶奶,在高速公路上開車很容易的。鬆開離合器,讓轉速超過 6000 轉使車輪打滑,然後進入第乙個彎道並上高速公路,看路牌到出口前,使用手剎飄逸轉向出口。
git的缺點:簡單任務也要諸多命令
如果你在開發乙個開源專案,你做了一些改變,然後想與其他人分享,你只需要:
1. 修改**
2. 執行 svn commit
如果你增加了一些新檔案:
1. 新增檔案
2. svn add
3. svn commit
1. make some changes
2. git add [not to be confused with svn add]
3. git commit
4. git push
5. 到此為止,你的更改只完成了一半,接下來你需要登入到 github,查詢你的提交,然後發布乙個 「pull request」 ,這樣其他人才可以獲取你的改動
在現實中,github 的維護者希望你的改動是功能方面的分支,他們會要求你這樣操作:
1. git checkout master [to make sure each new feature starts from the baseline]
2. git checkout -b newfeature
3. make some changes
4. git add [not to be confused with svn add]
5. git commit
6. git push
7. 然後登入到 github,切換到你的新特性分支,發布 「pull request」
為了將你的更改從你的本地目錄中移到實際的專案資源庫,你需要:add, commit, push, 「click pull request」, pull, merge, push.
下面是乙個流程圖向你展示乙個典型的開發者在 subversion 上要做的工作:
「bread and butter」 是與遠端 svn 資料庫操作的命令和概念。
然後我們再來看看如果你的專案託管在 github 上會是怎樣的:
如果 git 的強大之處是分支和合併,那麼它的弱點就是讓簡單的任務變得非常複雜。
翻譯版:我痛恨git 的 10 個理由 英文版:10 things i hate about git)
其他分享資料
git的使用方法
專案上傳至線上 git add git commit 備註 git push git branch 顯示所有分支 git branch newbranch 在本地建立新的分支 git checkout newbranch 切換到新的分支 git push origin newbranch 將新的分支...
Git的使用方法
2 使用git 進入cmd中切入自己需要記錄的檔案內,輸入命令 git init 執行,執行後檔案目錄中會多乙個 git 的資料夾 在目錄中建立乙個 hello.txt 檔案 如內容如下 然後在命令列中執行 git add 檔名 此時執行後沒有任何反饋的,只是將檔案存入快取中還未真正的上傳到git ...
git的使用方法
1.先把檔案新增到git git add readme.txt 2.在提交 m是提交時候寫的一句話 git commit m wrote a readme file 要隨時掌握工作區的狀態,使用git status命令 如果git status告訴你有檔案被修改過,用git diff可以檢視修改內容...