git基本常用命令如下:
mkdir: xx (建立乙個空目錄 xx指目錄名)
pwd: 顯示當前目錄的路徑。
git init 把當前的目錄變成可以管理的git倉庫,生成隱藏.git檔案。
git add xx 把xx檔案新增到暫存區去。
git commit –m 「xx」 提交檔案 –m 後面的是注釋。
git status 檢視倉庫狀態
git diff xx 檢視xx檔案修改了那些內容
git log 檢視歷史記錄
git reset –hard head^ 或者 git reset –hard head~ 回退到上乙個版本
(如果想回退到100個版本,使用git reset –hard head~100 )
cat xx 檢視xx檔案內容
git reflog 檢視歷史記錄的版本號id
git checkout — xx 把xx檔案在工作區的修改全部撤銷。
git rm xx 刪除xx檔案
git remote add origin 關聯乙個遠端庫
git push –u(第一次要用-u 以後不需要) origin master 把當前master分支推送到遠端庫
git clone 從遠端庫中轉殖
git checkout –b dev 建立dev分支 並切換到dev分支上
git branch 檢視當前所有的分支
git checkout master 切換回master分支
git merge dev 在當前的分支上合併dev分支
git branch –d dev 刪除dev分支
git branch name 建立分支
git stash 把當前的工作隱藏起來 等以後恢復現場後繼續工作
git stash list 檢視所有被隱藏的檔案列表
git stash drop 刪除檔案
git stash pop 恢復檔案的同時 也刪除檔案
git remote 檢視遠端庫的資訊
git remote –v 檢視遠端庫的詳細資訊
git push origin master git會把master分支推送到遠端庫對應的遠端分支上
回退
head指向的版本就是當前版本,因此,git允許我們在版本的歷史之間穿梭,
使用命令git reset --hard commit_id
穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。
要重返未來,用git reflog檢視命令歷史,以便確定要回到未來的哪個版本。
撤回
1.未add
命令git checkout -- readme.txt意思就是,把readme.txt檔案在工作區的修改全部撤銷,這裡有兩種情況:
一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。
2.已add
git同樣告訴我們,用命令git reset head file可以把暫存區的修改撤銷掉(unstage),重新放回工作區:
總結 場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。
場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head file,就回到了場景1,第二步按場景1操作。
刪除
1.確實要刪除檔案
git rm filename
git commit
2.誤刪 要恢復
git checkout -- filename
遠端倉庫
1.先有本地庫再有遠端庫
新建遠端庫
ssh-keygen -t rsa -c "email"
在使用者目錄下生成id_rsa.pub公鑰和id_rsa私鑰
在github上 settings->ssh and gpg keys 頁面 new sshkey 輸入名稱和公鑰即可
新增遠端庫
要關聯乙個遠端庫,使用命令git remote add origin git@server-name:path/repo-name.git;
關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;
此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;
2.先有遠端庫再有本地庫
要轉殖乙個倉庫,首先必須知道倉庫的位址,然後使用git clone命令轉殖。
git支援多種協議,包括https,但通過ssh支援的原生git協議速度最快
分支管理
git鼓勵大量使用分支:
檢視分支:git branch
建立分支:git branch 切換分支:git checkout 建立+切換分支:git checkout -b 合併某分支到當前分支:git merge 刪除分支:git branch -d
其他:
git log --graph --pretty=oneline --abbrev-commit 分支合併圖。
合併分支時,加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併
bug 分支
git stash儲存當前狀態
git stash list 檢視儲存狀態
恢復:2.git stash pop,恢復的同時把stash內容也刪了
開發乙個新feature,最好新建乙個分支;
如果要丟棄乙個沒有被合併過的分支,可以通過git branch -d 強行刪除。
首先,可以試圖用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。
小結 檢視遠端庫資訊,使用git remote -v;
本地新建的分支如果不推送到遠端,對其他人就是不可見的;
從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠端的新提交;
在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠端分支的名稱最好一致;
建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;
從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突
標籤
1. git tag name 新建標籤 預設head 可以指定commit id
2. git tag -a tagname -m description 標籤描述
3. git tag -s tagname -m description pgp簽名標籤
4. git tag 檢視所有標籤
5. git push origin tagname 推送乙個本地標籤
6. git push origin --tags 推送所有
7. git tag -d tagname 刪除乙個本地標籤
8. git push origin :refs/tags/tagname 刪除乙個遠端標籤
忽略特殊檔案
1.忽略某些檔案時,需要編寫.gitignore;
.gitignore檔案本身要放到版本庫里,並且可以對.gitignore做版本管理!
a collection of useful .gitignore templates:
Git使用總結
1.git branch vv 檢視本地分支與遠端分支的關聯關係 2.git push origin localbranch remotebranch 建立遠端分支remotebranch,該遠端分支的內容與localbranch內容一致 3.git push origin remotebranch...
Git使用總結
在linux上安裝git 命令 tar,config,make,sudo make install 在mac os x上安裝git exe程式執行即可 安裝完成後,在開始選單裡找到 git git bash 蹦出乙個類似命令列視窗的東西,就說明git安裝成功!設定使用者名稱 git config g...
Git使用總結
在windows上安裝git 安裝完成後,在開始選單裡找到 git git bash 蹦出乙個類似命令列視窗的東西,就說明git安裝成功!install git on windows安裝完成後,還需要最後一步設定,在命令列輸入 git config global user.name your nam...