git學習筆記

來源:互聯網
上載者:User

標籤:git   github   

1、初始化一個Git倉庫,使用git init命令。


2、添加檔案到Git倉庫,分兩步:
第一步,使用命令git add ,注意,可反覆多次使用,添加多個檔案;
第二步,使用命令git commit,完成。


3、查看工作區的狀態,使用git status命令。
如果git status告訴你有檔案被修改過,用git diff可以查看修改內容。


4、版本切換
Git允許我們在版本的曆史之間切換,使用命令git reset --hard commit_id。
切換前,用git log可以查看提交曆史,以便確定要回退到哪個版本。
要重返未來某個版本,用git reflog查看命令曆史


5、git add命令把要提交的所有修改放到暫存區(Stage),然後,執行git commit就可以一次性把暫存區的所有修改提交到分支。


6、撤銷修改
1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。
2:當你不但改亂了工作區某個檔案的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了情境1,第二步按情境1操作。


7、刪除檔案
git rm用於刪除一個檔案。如果一個檔案已經被提交到版本庫,那麼永遠不用擔心誤刪,但是只能恢複檔案到最新版本,會丟失最近一次提交後修改的內容。


8、遠程倉庫
建立SSH Key:$ ssh-keygen -t rsa -C "[email protected]"
關聯遠程倉庫:git remote add origin [email protected]:andersjing/learngit.git
把本地庫的所有內容推送到遠程庫上:
初次:$ git push -u origin master
再次:$ git push origin master
9、要複製一個倉庫,首先必須知道倉庫的地址,然後使用git clone命令複製。
$ git clone [email protected]:andersjing/gitskills.git


10、分支管理命令:
查看分支:git branch
建立分支:git branch name
切換分支:git checkout name
建立+切換分支:git checkout -b name
合并某分支到當前分支:git merge name
刪除分支:git branch -d name


11、合并衝突
當Git無法自動合并分支時,就必須首先解決衝突。解決衝突後,再提交,合并完成。
用git log --graph命令可以看到分支合并圖。
--no-ff參數,禁用“Fast forward”:git merge --no-ff -m "merge with no-ff" dev


12、儲存現場
把當前工作現場“儲藏”起來,等以後恢複現場後繼續工作:git stash
查看工作現場:git stash list
恢複現場:
一是用git stash apply [email protected]{0} 恢複,但是恢複後,stash內容並不刪除,需用git stash drop [email protected]{0} 來刪除;
另一種方式是用git stash pop,恢複的同時把stash內容也刪除;
13、要丟棄一個沒有被合并過的分支,可以通過git branch -D name強行刪除。


14、多人協作的工作模式:
首先,可以試圖用git push origin branch-name推送自己的修改;
如果推送失敗,則因為遠程分支比你的本地更新,需要先用git pull試圖合并;
如果合并有衝突,則解決衝突,並在本地提交;
沒有衝突或者解決掉衝突後,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,則說明本地分支和遠程分支的連結關係沒有建立,用命令git branch --set-upstream branch-name origin/branch-name。


15、標籤
命令git tag name用於建立一個標籤,預設為HEAD,也可以指定一個commit id;
命令git tag查看標籤;(標籤不是按時間順序列出,而是按字母排序的。)
命令git show tagname可以看到解說文字;
刪除標籤:$ git tag -d tagname;
推送某個標籤到遠程:git push origin tagname;
一次性推送全部尚未推送到遠端本地標籤:git push origin --tags;
標籤已經推送到遠程,要刪除遠程標籤先從本地刪除:$ git tag -d v0.9;然後從遠程刪除:git push origin :refs/tags/v0.9;


16、github使用
在GitHub上,可以任意Fork開源倉庫;
然後,從自己的帳號下clone:git clone [email protected]:andersjing/bootstrap.git ;
可以推送pull request給官方倉庫來貢獻代碼;


17、在Git工作區的根目錄下建立一個.gitignore檔案,把要忽略的檔案名稱填進去,Git就會自動忽略這些檔案。


18、配置快捷命令:git config --global alias.shortname ordername


19、搭建Git伺服器
第一步,安裝git:$ sudo apt-get install git
第二步,建立一個git使用者,用來運行git服務:$ sudo adduser git
第三步,建立認證登入:收集所有需要登入的使用者的公開金鑰,就是他們自己的id_rsa.pub檔案,把所有公開金鑰匯入到/home/git/.ssh/authorized_keys檔案裡,一行一個。
第四步,初始化Git倉庫:先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:$ sudo git init --bare sample.git
Git就會建立一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共用,所以不讓使用者直接登入到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:$ sudo chown -R git:git sample.git
第五步,禁用shell登入:出於安全考慮,第二步建立的git使用者不允許登入shell,這可以通過編輯/etc/passwd檔案完成。找到類似下面的一行:git:x:1001:1001:,,,:/home/git:/bin/bash
改為:git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git使用者可以正常通過ssh使用git,但無法登入shell,因為我們為git使用者指定的git-shell每次一登入就自動結束。
第六步,複製遠程倉庫:

現在,可以通過git clone命令複製遠程倉庫了,在各自的電腦上運行:$ git clone [email protected]:/srv/sample.git


常用命令總結



學習地址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

git學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.