1.寫本篇文章的由來
最開始我只會用git最簡單的幾個命令,例如:git add, git commit -m "", git push, git pull.因為我有倆太電腦,倆個電腦程式碼共享不方便,於是就想到了使用github。而最近因為以下原因激發了我全面瞭解git的興趣:
- 1.總是碰到程式碼衝突,不知道怎麼檢視解決
- 2.某次刪了一個寫的差不多的功能,後來有需要但是找不回來了,於是就想用git高度管理我的程式碼,不讓這種悲劇再次發生(當時憤怒至極,這也是主要原因)
2.git的優點
由於我本人有著SVN的經驗,所以此處特地拿SVN跟git做對比
1.每臺電腦都儲存有提交記錄
SVN 只有中央伺服器才有提交記錄,本地上檢視的log都是拉取的伺服器上的記錄,如果有一天你的伺服器自爆了,這就代表著這些記錄都沒有了。你電腦上只是保留了最後一個版本的快照僅此而已。有的時候你可能還需要在家工作,如果你們公司設定了域名限制,那你只能苦逼的在公司加班了。
git 每臺電腦都儲存有提交記錄就可以避免上面的問題發生。
2.本地可以搭建分支
SVN 說實在的,在我瞭解git之前都不知道有分支這個概念(分支通俗來說就是從主幹複製了一份檔案,你修改複製的檔案對主幹不會產生影響)。當我知道了之後不得不感嘆高手的工作方式
git 有分支概念,也就是有複製檔案的功能,但是要比複製檔案強很多。你複製一份檔案還要找地方儲存,如果複製的多了就容易混淆了,可能需要做筆記,而git只需要一個簡單的命令就能夠幫你複製檔案並且自動記錄。
3.更多的優點可以看官方的介紹

3.git的缺點
沒法控制許可權,由於git的發明者是開原始碼的鼻祖,所以對控制許可權嗤之以鼻,沒有設定這個功能,對於一些對程式碼保護有要求的公司可能不太合適,網上提供了Gitolite來控制許可權,我本人沒試過。有需要的可以自己瞭解一下。
3.學習資源
1.官網
git官網還不支援中文,所以要看起來還是比較費時的,不過他裡面提供了一本翻譯成中文的書,語言選擇在左邊列表,從目錄看裡面對git介紹挺全的(我看了一部分就看不進去了,等以後有興趣了再看吧),連結在這裡
強烈建議學習某個新知識一定要先從官網開始,哪怕沒有中文翻譯。官網這裡一定是最全的,實在看不懂才開始找其他素材
2.廖雪峰的git教程
這個教程裡面講的幾乎都是很稀疏常見的操作,滿滿的入門幹活。看完這個使用git教程基本上沒有問題了。連結在這裡
這個教程對我影響很大,剛開始我從git官網上啥也沒看出來,那本書也是我學完了這個教程想著再去看看有沒有什麼我沒了解的才翻出來的。這個教程從安裝git環境,到提交第一條記錄,建立一個分支,合併分支,解決衝突,使用github,設定一個github伺服器講解的很顯淺易懂。不可多得的好文章。
4.github你還需要了解這些東西
1.github上面的版本標籤你瞭解過麼?

2.新增別人的專案到自己的倉庫上來

5.git這些實用的操作你瞭解了麼?
1.設定別名
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -
複製程式碼
如果你有條件可以複製上面的命令在你的git專案輸入一下,然後在輸入下面的命令,看看效果,沒有條件可以看我發的圖片
git lg
複製程式碼

git config --global alias.別名名稱 "簡化的命令"
複製程式碼
2.設定漂亮的版本記錄
git 提交的內容實在是太亂了,整這麼一個hash值,死醜閱讀性又差,而且git提交的次數那麼多,我要是整倆個版本。中間都不知道間隔多少了,要是能夠只儲存像下面圖片上的快照一樣檢視版本記錄就好了(快照:類似於分支,只是叫法不同).

git tag 檢視標籤列表
git tag * 新增新的標籤
git tag * num 找到某個版本打標籤(num: 提交的時候產生的hash值,常用於忘記生成標籤的時候使用)
git tag -a v0.1 -m "version 0.1 released" -a 指定標籤名 -m 指定說明文字
git tag -d v0.9 刪除標籤
git push origin <tagname> 把標籤推到遠端伺服器
git show <tagname> 檢視標籤對應的資訊,通過便籤對應的資訊你就可以回到這次版本了
複製程式碼
之前寫的文章有人說我打廣告,純屬冤枉。我只是把一些對我產生實質性影響的乾貨發表出來讓共多人瞭解到這些好東西僅此而已。
趕緊我分享的還不錯,可以關注我的公眾號吵吵日記,第一時間獲得我釋出的文章。
