Git 常用命令大全(轉)

zone發表於2016-07-21

Git 是一個很強大的分散式版本控制系統。它不但適用於管理大型開源軟體的原始碼,管理私人的文件和原始碼也有很多優勢。

Git常用操作命令

1) 遠端倉庫相關命令



檢出倉庫:$ git clone git://github.com/jquery/jquery.git
檢視遠端倉庫:$ git remote -v
新增遠端倉庫:$ git remote add [name] [url]
刪除遠端倉庫:$ git remote rm [name]
修改遠端倉庫:$ git remote set-url --push [name] [newUrl]
拉取遠端倉庫:$ git pull [remoteName] [localBranchName]
推送遠端倉庫:$ git push [remoteName] [localBranchName]
*如果想把本地的某個分支test提交到遠端倉庫,並作為遠端倉庫的master分支,或者作為另外一個名叫test的分支,如下:
$git push origin test:master         // 提交本地test分支作為遠端的master分支
$git push origin test:test              // 提交本地test分支作為遠端的test分支

2)分支(branch)操作相關命令

 

檢視本地分支:$ git branch
檢視遠端分支:$ git branch -r
建立本地分支:$ git branch [name] ----注意新分支建立後不會自動切換為當前分支
切換分支:$ git checkout [name]
建立新分支並立即切換到新分支:$ git checkout -b [name]
刪除分支:$ git branch -d [name] ---- -d選項只能刪除已經參與了合併的分支,對於未有合併的分支是無法刪除的。如果想強制刪除一個分支,可以使用-D選項
合併分支:$ git merge [name] ----將名稱為[name]的分支與當前分支合併
建立遠端分支(本地分支push到遠端):$ git push origin [name]
刪除遠端分支:$ git push origin :heads/[name] 或 $ gitpush origin :[name] 
 
*建立空的分支:(執行命令之前記得先提交你當前分支的修改,否則會被強制刪乾淨沒得後悔)
$git symbolic-ref HEAD refs/heads/[name]
$rm .git/index
$git clean -fdx
 

3)版本(tag)操作相關命令


檢視版本:$ git tag
建立版本:$ git tag [name]
刪除版本:$ git tag -d [name]
檢視遠端版本:$ git tag -r
建立遠端版本(本地版本push到遠端):$ git push origin [name]
刪除遠端版本:$ git push origin :refs/tags/[name]
合併遠端倉庫的tag到本地:$ git pull origin --tags
上傳本地tag到遠端倉庫:$ git push origin --tags
建立帶註釋的tag:$ git tag -a [name] -m `yourMessage`

4) 子模組(submodule)相關操作命令

新增子模組:$ git submodule add [url] [path]
   如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
初始化子模組:$ git submodule init  ----只在首次檢出倉庫時執行一次就行
更新子模組:$ git submodule update ----每次更新或切換分支後都需要執行一下
刪除子模組:(分4步走哦)
 1) $ git rm --cached [path]
 2) 編輯“.gitmodules”檔案,將子模組的相關配置節點刪除掉
 3) 編輯“ .git/config”檔案,將子模組的相關配置節點刪除掉
 4) 手動刪除子模組殘留的目錄

5)忽略一些檔案、資料夾不提交

在倉庫根目錄下建立名稱為“.gitignore”的檔案,寫入不需要的資料夾名或檔案,每個元素佔一行即可,如
target
bin
*.db
 

Git 常用命令
git branch 檢視本地所有分支
git status 檢視當前狀態 
git commit 提交 
git branch -a 檢視所有的分支
git branch -r 檢視本地所有分支
git commit -am "init" 提交併且加註釋 
git remote add origin git@192.168.1.119:ndshow
git push origin master 將檔案給推到伺服器上 
git remote show origin 顯示遠端庫origin裡的資源 
git push origin master:develop
git push origin master:hb-dev 將本地庫與伺服器上的庫進行關聯 
git checkout --track origin/dev 切換到遠端dev分支
git branch -D master develop 刪除本地庫develop
git checkout -b dev 建立一個新的本地分支dev
git merge origin/dev 將分支dev與當前分支進行合併
git checkout dev 切換到本地dev分支
git remote show 檢視遠端庫
git add .
git rm 檔名(包括路徑) 從git中刪除指定檔案
git clone git://github.com/schacon/grit.git 從伺服器上將程式碼給拉下來
git config --list 看所有使用者
git ls-files 看已經被提交的
git rm [file name] 刪除一個檔案
git commit -a 提交當前repos的所有的改變
git add [file name] 新增一個檔案到git index
git commit -v 當你用-v引數的時候可以看commit的差異
git commit -m "This is the message describing the commit" 新增commit資訊
git commit -a -a是代表add,把所有的change加到git index裡然後再commit
git commit -a -v 一般提交命令
git log 看你commit的日誌
git diff 檢視尚未暫存的更新
git rm a.a 移除檔案(從暫存區和工作區中刪除)
git rm --cached a.a 移除檔案(只從暫存區中刪除)
git commit -m "remove" 移除檔案(從Git中刪除)
git rm -f a.a 強行移除修改後檔案(從暫存區和工作區中刪除)
git diff --cached 或 $ git diff --staged 檢視尚未提交的更新
git stash push 將檔案給push到一個臨時空間中
git stash pop 將檔案從臨時空間pop下來
---------------------------------------------------------
git remote add origin git@github.com:username/Hello-World.git
git push origin master 將本地專案給提交到伺服器中
-----------------------------------------------------------
git pull 本地與伺服器端同步
-----------------------------------------------------------------
git push (遠端倉庫名) (分支名) 將本地分支推送到伺服器上去。
git push origin serverfix:awesomebranch
------------------------------------------------------------------
git fetch 相當於是從遠端獲取最新版本到本地,不會自動merge
git commit -a -m "log_message" (-a是提交所有改動,-m是加入log資訊) 本地修改同步至伺服器端 :
git branch branch_0.1 master 從主分支master建立branch_0.1分支
git branch -m branch_0.1 branch_1.0 將branch_0.1重新命名為branch_1.0
git checkout branch_1.0/master 切換到branch_1.0/master分支
du -hs

切回舊版本後重新提交推送程式碼的方法

用 git reset --hard 23801b2 將程式碼切換到目標提交的 id。

接下來,用 git reset --soft origin/source 命令,將當前程式碼切換回最新的提交。
mkdir WebApp
cd WebApp
git init
touch README
git add README
git commit -m `first commit`
git remote add origin git@github.com:daixu/WebApp.git
git push -u origin master