git bash 命令行

檢查已有的配置信息:git config --listgit

檢查當前文件狀態:git statusgithub

跟蹤新文件bash

git add file 只要在 「Changes to be committed」 這行下面的,就說明是已暫存狀態。
git add 命令(這是個多功能命令,根據目標文件的狀態不一樣,此命令的效果也不一樣:能夠用它開始跟蹤新文件,或者把已跟蹤的文件放到暫存區,還能用於合併時把有衝突的文件標記爲已解決狀態等)

忽略某些文件app

通常咱們總會有些文件無需歸入 Git 的管理,也不但願它們總出如今未跟蹤文件列表。一般都是些自動生成的文件,好比日誌文件,或者編譯過程當中建立的臨時文件等。咱們能夠建立一個名爲 .gitignore 的文件,列出要忽略的文件模式。來看一個實際的例子:
        $ cat .gitignore
	*.[oa]
	*~
	第一行告訴 Git 忽略全部以 .o 或 .a 結尾的文件。通常這類對象文件和存檔文件都是編譯過程當中出現的,咱們用不着跟蹤它們的版本。第二行告訴 Git 忽略全部以波浪符(~)結尾的文件,許多文本編輯軟件(好比 Emacs)都用這樣的文件名保存副本。此外,你可能還須要忽略 log,tmp 或者 pid 目錄,以及自動生成的文檔等等。要養成一開始就設置好 .gitignore 文件的習慣,以避免未來誤提交這類無用的文件。

提交更新ssh

git commit
另外也能夠用 -m 參數後跟提交說明的方式,在一行命令中提交更新:
$ git commit -m "case...."
git commit只負責把暫存區的修改提交了,也就是第一次的修改被提交了,第二次的修改不會被提交。

跳過使用暫存區域日誌

$ git commit -a -m 'case....'

移除文件code

要在 Git 中對文件更名,能夠這麼作:$ git mv file_from file_to
其實,運行 git mv 就至關於運行了下面三條命令:
	$ mv README.txt README
	$ git rm README.txt
	$ git add README

查看提交歷史orm

git log
咱們經常使用 -p 選項展開顯示每次提交的內容差別,用 -2 則僅顯示最近的兩次更新:
$ git log -p -2
還有許多摘要選項能夠用,好比 --stat,僅顯示簡要的增改行數統計:
$ git log --stat

表 2-1 列出了經常使用的格式佔位符寫法及其表明的意義。對象

選項     說明

%H     提交對象(commit)的完整哈希字串
%h     提交對象的簡短哈希字串
%T     樹對象(tree)的完整哈希字串
%t     樹對象的簡短哈希字串
%P     父對象(parent)的完整哈希字串
%p     父對象的簡短哈希字串
%an     做者(author)的名字
%ae     做者的電子郵件地址
%ad     做者修訂日期(能夠用 -date= 選項定製格式)
%ar     做者修訂日期,按多久之前的方式顯示
%cn     提交者(committer)的名字
%ce     提交者的電子郵件地址
%cd     提交日期
%cr     提交日期,按多久之前的方式顯示
%s      提交說明

	用 oneline 或 format 時結合 --graph 選項,能夠看到開頭多出一些 ASCII 字符串表示的簡單圖形,形象地展現了每一個提交所在的分支及其分化衍合狀況。在咱們以前提到的 Grit 項目倉庫中能夠看到:
$ git log --pretty=format:"%h %s" --graph

查看當前的遠程庫ci

$ git remote -v

查看文件

cat file

撤銷工做區修改

命令git checkout -- readme.txt意思就是,把readme.txt文件在工做區的修改所有撤銷,這裏有兩種狀況:
一種是readme.txt自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態;
一種是readme.txt已經添加到暫存區後,又做了修改,如今,撤銷修改就回到添加到暫存區後的狀態。
總之,就是讓這個文件回到最近一次git commit或git add時的狀態。	
//git checkout -- file命令中的--很重要,沒有--,就變成了「切換到另外一個分支」的命令。

撤銷暫存區修改

Git一樣告訴咱們,用命令git reset HEAD file能夠把暫存區的修改撤銷掉(unstage),從新放回工做區:
$ git reset HEAD readme.txt

刪除:

$ rm file//刪除工做區的文件
	1.$ git commit -m "remove file"//從版本庫中刪除該文件
	2.$ git checkout -- file //若是工做區刪除錯了只須要從版本庫中還原

建立SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

在github中添加sshkey:

setting中選擇SSH keys ,而後New SSH key,title隨便取,key裏面粘貼id_rsa.pub中的內容.

關聯遠程倉庫:

$ git remote add origin git@github.com:karlwangshengyi/wsy.git

錯誤提示:

git init 產生的目錄解釋
error: src refspec master does not match any.	
引發該錯誤的緣由是,目錄中沒有文件,空目錄是不能提交上去的

error: insufficient permission for adding an object to repository database ./objects
服務端沒有可寫目錄的權限

錯誤提示:fatal: remote origin already exists.
解決辦法:$ git remote rm origin

錯誤提示:error: failed to push som refs to ........
解決辦法:$ git pull origin master //先pull 下來 再push 上去

推送代碼:

$ git push origin master

克隆代碼:

$ git clone git@github.com:karlwangshengyi/wsy.git


//你也許還注意到,GitHub給出的地址不止一個,還能夠用https://github.com/michaelliao/gitskills.git這樣的地址。
//實際上,Git支持多種協議,默認的git://使用ssh,但也可使用https等其餘協議。
//使用https除了速度慢之外,還有個最大的麻煩是每次推送都必須輸入口令,
//可是在某些只開放http端口的公司內部就沒法使用ssh協議而只能用https。

git bash複製粘貼:

右鍵,屬性,設置快速編輯模式。cd ..返回上一級。

建立分支dev:

git checkout命令加上-b參數表示建立並切換,至關於如下兩條命令:
$ git branch dev
$ git checkout dev	//切換分支
Switched to branch 'dev'

查看分支:

git branch	//git branch命令會列出全部分支,當前分支前面會標一個*號。

合併分支,咱們把dev分支的工做成果合併到master分支上:

$ git merge dev

刪除分支:

$ git branch -d dev

保存貯藏:

$ git stash	//保存當前的工做環境,臨時修改bug時可能保存當前環境而後新建臨時分支解決問題,提交後刪除bug分支,再繼續修復當前問題
$ git stash list	//查看工做現場
工做現場還在,Git把stash內容存在某個地方了,可是須要恢復一下,有兩個辦法:
	一是用git stash apply恢復,可是恢復後,stash內容並不刪除,你須要用git stash drop來刪除;
	另外一種方式是用git stash pop,恢復的同時把stash內容也刪了:

銷燬分支:

若是要丟棄一個沒有被合併過的分支,能夠經過git branch -D <name>強行刪除。

不必定要把本地分支往遠程推送,那麼,哪些分支須要推送,哪些不須要呢?

master分支是主分支,所以要時刻與遠程同步;
dev分支是開發分支,團隊全部成員都須要在上面工做,因此也須要與遠程同步;
bug分支只用於在本地修復bug,就不必推到遠程了,除非老闆要看看你每週到底修復了幾個bug;
feature分支是否推到遠程,取決於你是否和你的小夥伴合做在上面開發。

在本地建立和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致; 創建本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;

打標籤:

命令git tag <name>用於新建一個標籤,默認爲HEAD,也能夠指定一個commit id;
git tag -a <tagname> -m "blablabla..."能夠指定標籤信息;
git tag -s <tagname> -m "blablabla..."能夠用PGP簽名標籤;
命令git tag能夠查看全部標籤。
git show <tagname>查看標籤信息。
命令git push origin <tagname>能夠推送一個本地標籤;
命令git push origin --tags能夠推送所有未推送過的本地標籤;
命令git tag -d <tagname>能夠刪除一個本地標籤;
命令git push origin :refs/tags/<tagname>能夠刪除一個遠程標籤。
相關文章
相關標籤/搜索