Git command

微微微笑發表於2015-07-13

TortoiseGit: http://download.tortoisegit.org/tgit/previews/

msysGit: https://msysgit.github.io/

初始化Git倉庫                                                          

#git init

新增檔案test.pyGit 倉庫

#git add test.py                        //新增檔案到stage

#git rm test.py              //刪除檔案test.py

#git mv test.py  test2.py           //更改test.py為test2.py

#git commit –m “add test.py”              //commit檔案到local 庫

#git commit –a             //commit所有的檔案

回退                                                                                                               

#git checkout –test.py              //workspace:用stage的test.py重寫工作區的test.py檔案

#git checkout .                         //workspace:重寫工作區的所有檔案

#git reset HEAD test.py           //stage

#git reset –hard commit_id      //local repo:回退版本庫。HEAD^代指前一個版本。

#git revert        //建立一個commit來覆蓋當前的commit,指標向後移動,而reset指標向前移動。

檢視log                                                                                                           

#git log                         //顯示基本資訊

#git log –pretty=raw                 //顯示所有資訊

#git log –pretty=oneline                       //一行顯示

# git log --graph --pretty=oneline                     //檢視分支合併圖

#git reflog                    //檢視所有具有commit_id的日誌

#git status

比較

#git diff                       //workspace vs stage

#git diff –cached         //stage vs local repo

#git diff HEAD                        //local vs local repo

分支                         

#git branch                   //檢視分支

#git branch –r              //檢視遠端分支

#git branch –a              //檢視所有的分支

#git branch dev            //建立分支dev

#git checkout dev        //切換到分支dev

#git checkout –b dev   //建立並切換到dev分支

#git branch –d dev       //刪除分支dev

#git branch –D dev      //強制刪除分支dev

#git checkout –b dev origin/dev           //在本地建立和遠端分支對應的分支

#git branch –set-upstream dev origin/dev        //建立本地分支和遠端分支的關聯

Merge

#git merge dev             //合併分支dev到當前分支

#git merge –no-ff –m “merge with no-ff” dev //禁用fast-forward, 也就是保留分支的相關資訊

遠端庫(origin為遠端伺服器)

#ssh-keygen –t rsa –C  “youremail@example.com”    //建立SSH Key。存放在~/.ssh下。

#git clone git@github.com:minirenhappy/gitskills.git              //克隆遠端庫到本地

#git remote –v              //檢視遠端庫

#git remote add origin  git@github.com:minirenhappy/gitskills.git       //關聯到遠端庫

#git remote rm origin               //刪除遠端庫

Pull (相當於 fetch+merge , 所以fetch更安全一些)                                          

#git pull remoteName localBranchName

#git pull origin master              //拉取遠端倉庫的origin到master

Fetch

#git fetch origin master

#git rebase origin/master          //把本地庫的提交取消並作為patch,最後把patch應用於本地庫上,可以保證提交樹的整潔。

 #git push

Push到遠端庫

#git push  remoteName localBranchName

#git push –u origin master                    //第一次推送master到遠端庫

#git push origin master             //推送到遠端庫。

#git push origin dev:master                  //提交本地的dev分支作為遠端的master分支

#git push origin dev:dev                      //提交本地的dev分支作為遠端的dev分支

#git push origin dev                 //建立遠端分支(本地分支push到遠端)

Stash

#git stash          //將工作區現場儲存起來,以後再恢復。用於修bug。

#git stash list    //檢視儲存的工作區現場

#git stash apply            //恢復工作區現場

#git stash drop             //刪除stash內容

#git stash pop               //恢復工作區的同時刪除stash的內容

#git stash apply stash@{0}      //恢復指定的工作區

Tag

#git tag             //檢視標籤

#git tag v1.0                 //建立標籤v1.0

#git tag –a v1.0 –m “this is version 1.0”          //指定標籤資訊

#git tag –s v1.0 –m “this is version 1.0”          //用PGP簽名標籤

#git push origin v1.0                //推送本地標籤到遠端

#git push origin –tags               //推送所有的本地標籤到遠端

#git pull origin –tags                //拉取遠端的標籤到本地

#git tag –d v1.0                                    //刪除本地標籤

#git push origin :refs/tags/v1.0             //刪除遠端標籤

忽略檔案、資料夾

#倉庫根目錄下建立.gitignore檔案。寫入

#target

#*.pyc

Github

#可以Fork任何開源倉庫到自己的github賬戶,並且擁有Fork後的倉庫的讀寫許可權。

#可以推送pull request給官方倉庫來貢獻程式碼。

相關文章