1. 程式人生 > >[編輯修訂01]git 常用命令和Gerrit的聯合使用常用命令

[編輯修訂01]git 常用命令和Gerrit的聯合使用常用命令

1) 遠端倉庫相關命令 檢出倉庫:$ git clone git://github.com/jquery/jquery.git 檢出倉庫:$ git clone -o github -b 2.0.0 git://github.com/jquery/jquery.git jquery2        ->直接檢出分支 2.0.0,指定遠端倉庫名稱為 github (預設為 origin)、檢出到資料夾 jquery2 (預設為 jquery) 檢視遠端倉庫:$ 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] 強制推送更改:$ git push --force origin master * 如果想把本地的某個分支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 fetch origin 先) 建立本地分支:$ git branch [name] ----注意新分支建立後不會自動切換為當前分支 切換分支:$ git checkout [name] 建立新分支並立即切換到新分支:$ git checkout -b [name] 直接檢出遠端分支:$ git checkout -b [name] [remoteName] (如:git checkout -b myNewBranch origin/dragon) 刪除分支:$ git branch -d [name] ---- -d選項只能刪除已經參與了合併的分支,對於未有合併的分支是無法刪除的。如果想強制刪除一個分支,可以使用-D選項 合併分支:$ git merge [name] ----將名稱為[name]的分支與當前分支合併 合併最後的2個提交
:$git rebase -i HEAD~2 ---- 數字2按需修改即可(如果需提交到遠端$ git push -f origin master 慎用! 建立遠端分支(本地分支push到遠端):$ git push origin [name] 刪除遠端分支:$ git push origin :heads/[name] 或 $ git push origin :[name]  修改本地分支名稱:git branch -m <old_branch_name> <new_branch_name>   直接修改遠端分支名稱(不修改本地的):git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name> 修改本地及其遠端分支的名稱:         1. git branch -m <old_name> <new_name>         2. git push <remote> --set-upstream new_name         3. git push <remote> :old_name         對於其它客戶端的倉庫,需要執行如下兩個命令獲取最新的修改:         4. git fetch <remote>         5. git remote prune <remote>
* 建立空的分支:(執行命令之前記得先提交你當前分支的修改,否則會被強制刪乾淨沒得後悔)          方法1:                $ git checkout --orphan <branch_name>                $ git rm -rf *        方法2:                $ 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 6後悔藥 刪除當前倉庫內未受版本管理的檔案:$ git clean -f 恢復倉庫到上一次的提交狀態:$ git reset --hard 回退所有內容到上一個版本:$git reset HEAD^ 回退a.py這個檔案的版本到上一個版本:$git reset HEAD^ a.py 回退到某個版本:$git reset 057d  將本地的狀態回退到和遠端的一樣:$ git reset –hard origin/master   向前回退到第3個版本:$ git reset –soft HEAD~3 修改最後的提交日誌:$ git commit --amend 7Git一鍵推送多個遠端倉庫 編輯本地倉庫的.git/config檔案: [remote "all"]     url = [email protected]:dragon/test.git     url = [email protected]:dragon/test.git 這樣,使用git push all即可一鍵Push到多個遠端倉庫中。 8)快取認證資訊 $ git config credential.helper cache 9)檢視提交日誌 》檢視檔案中的每一行的作者、最新的變更提交和提交時間 $ git blame [fileName] 1e3d0777 (Username   2016-03-26 20:53:45 +0800  9) #ifdef __cplusplus
》檢視倉庫歷史記錄 有三個應該知道的選項。 --oneline - 壓縮模式,在每個提交的旁邊顯示經過精簡的提交雜湊碼和提交資訊,以一行顯示。 --graph - 圖形模式,使用該選項會在輸出的左邊繪製一張基於文字格式的歷史資訊表示圖。如果你檢視的是單個分支的歷史記錄的話,該選項無效。 --all - 顯示所有分支的歷史記錄 把這些選項組合起來之後如下: Git常用操作命令 - rongjih - 擁有自己的夢想,跟隨心的召喚 使用 $ git log --oneline --graph --name-status 既可以看到簡介的日誌資訊,也可以看到改了哪些檔案,一舉兩得: Git常用操作命令 - rongjih - 擁有自己的夢想,跟隨心的召喚
10)有選擇的合併 - 這個功能最贊,沒有之一 cherry-pick 可以從不同的分支中撿出一個單獨的commit,並把它和你當前的分支合併。如果你以並行方式在處理兩個或以上分支,你可能會發現一個在全部分支中都有的bug。如果你在一個分支中解決了它,你可以使用cherry-pick命令把它commit到其它分支上去,而不會弄亂其他的檔案或commit。 $ git cherry-pick [commitHash] 11)Stash未提交的更改 正在修改某個bug或者某個特性,又突然被要求展示工作。而現在所做的工作還不足以提交,這個階段還無法進行展示(不能回到更改之前)。在這種情況下, git stash可以幫到忙了。stash在本質上會取走所有的變更並存儲它們以備將來使用。 $ git stash 檢查stash列表:$ git stash list 想解除stash並且恢復未提交的變更,就進行apply stash:$ git stash apply 如果只想留有餘地進行apply stash,給apply新增特定的識別符號:$ git stash apply [email protected]{0} 12)多次修改後拆分提交 - 暫存檔案的部分改動 一般情況下,建立一個基於特性的提交是比較好的做法,意思是每次提交都必須代表一個新特性的產生或者是一個bug的修復。如果你修復了兩個bug,或是添加了多個新特性但是卻沒有提交這些變化會怎樣呢?在這種情況下,你可以把這些變化放在一次提交中。但更好的方法是把檔案暫存(Stage)然後分別提交。 例如你對一個檔案進行了多次修改並且想把他們分別提交。這種情況下,可以在 add 命令中加上 -p 引數 $ git add -p [fileName] 13)壓縮多個Commit 用rebase命令把多個commit壓縮成一個 git rebase -i HEAD~[number_of_commits] 如果你想要壓縮最後兩個commit,你需要執行下列命令: git rebase -i HEAD~2 14)差異檢視 $ git diff --name-status HEAD~2 HEAD~3 <-- 獲得兩個版本間所有變更的檔案列表 $ git diff HEAD HEAD~1 <-- 檢視最近兩個提交之間的差異 $ git diff HEAD HEAD~2 <-- 檢視第1個與第3個提交之間的差異 ~ - 代表連續的提交,~n相當於連續的第n個提交 $ git diff master..test <-- 比較兩個分支之間的差異 $ git diff master...test <-- 比較master、test的共有父分支和 test 分支之間的差異 $ git diff test <-- 比較當前工作目錄與 test 分支的差異 $ git diff HEAD <-- 比較當前工作目錄與上次提交的差異 $ git diff HEAD -- ./lib  <-- 比較當前工作目錄下的lib目錄與上次提交的差異 $ git diff --stat <-- 統計一下有哪些檔案被改動,有多少行被改動 $ git diff --cached  <-- 檢視下次提交時要提交的內容(staged,新增到索引中) 15)Git for Windows 中文亂碼問題 (1.9.4-preview20140611) 》git log 顯示的檔名亂碼 執行 "git config –global core.quotepath false"可以解決之。core.quotepath設為false,就不會對0×80以上的字元進行quote,中文就顯示正常。 修正前: Git常用操作命令 - rongjih - 擁有自己的夢想,跟隨心的召喚 修正後: Git常用操作命令 - rongjih - 擁有自己的夢想,跟隨心的召喚 》ls命令顯示的中文名亂碼 改用"ls --show-control-chars"命令代替單純的"ls"命令即可。 或者編輯.../Git/etc/git-completion.bash,新增一行 alias ls="ls –show-control-chars"

相關推薦

[編輯修訂01]git 常用命令Gerrit聯合使用常用命令

1) 遠端倉庫相關命令 檢出倉庫:$ git clone git://github.com/jquery/jquery.git 檢出倉庫:$ git clone -o github -b 2.0.0 git://github.com/jquery/jquery.git jquery2        -&

gitGerrit聯合使用命令

git reset {commitid} 撤銷本地提交 git reset --hard HEAD^回到上一版本 git reset --hard HEAD^^回到上上版本 git reset --hard 3628164   到那個append G

Git的安裝簡單使用(命令列模式+圖形化模式)

  剛開始用git的小白適用,參考連結:http://www.cnblogs.com/qijunjun/p/7137207.html  實際專案開發中,我們經常會用一些版本控制器來託管自己的程式碼,今天就來總結下Git的相關用法,廢話不多說,直接開寫。   目的:通過Git管理GitHub上託管的專

SQLite3資料庫在嵌入式應用之三: 以日誌功能為例給出常用命令C/C++常用API

/****************************************************** *SQLite3 比較重要的語句 *******************************************************/ #define LOG_TABLE_NAME "

Linux系列教程(五)——Linux鏈接命令權限管理命令

密碼 mission pos link 掩碼 Owner 最大的 linux系統 passwd   前一篇博客我們講解了Linux文件和目錄處理命令,還是老生常淡,對於新手而言,我們不需要完全記住命令的詳細語法,記住該命令能完成什麽功能,然後需要的時候去查就好了,用的多了我

Redis-List命令Zset有序集合命令的併發原子性原理

一、Redis-List命令和Zset有序集合命令的併發原子性原理 這個併發原則處理的過程是要基於當前的key在客戶端發生了併發產生了阻塞才會執行, 否者會返回NULL不做處理,多個命令併發操作這個KEY,就可能產生阻塞 db->blocking_keys 字典維護的雜湊表,存放客

Windows檢視程序CMD命令終止程序CMD命令

        列出當前所有執行程序。         使用方法:在命令提示符中輸入tasklist 然後回車,會看到類似下面的列表: 映像名稱                       PID 會話名              會話#       記憶體使用 ======================

linux ssh 到遠端伺服器執行命令crontab中執行命令提示命令找不到的問題

使用ssh ip "hadoop" 命令時,提示找不到hadoop命令。 因為hadoop是在/etc/profile配置的,ssh到一臺伺服器上時,會執行使用者環境。 而ssh到一臺伺服器上,帶著命

who命令、whoami命令who am i命令的區別

下來我們就看看這幾個命令的區別: 首先Fire登入的是root使用者,我們看一下這三個命令的區別: 然後Fire用su命令切換到普通使用者下,在看看這三個命令的區別: 總結如下: who

ssh直接傳送命令登入終端傳送命令的區別

為什麼終端可以找到的命令在ssh上傳送失敗,說找不到某條命令?使用ssh直接傳送一條命令下去,使用的是虛擬終端,與直接使用終端和使用ssh登入後的終端不是一個終端。該虛擬終端只是載入了基礎的配置檔案,而真正的終端多了:/etc/profile和其他不是基礎的配置檔案。記得首先

常用shell命令vi編輯

css lin str 目錄 用戶輸入 重定向 move 處理 操作 Shell 介紹 Shell:殼(區別於:核) 普通意義上的shell就是可以接受用戶輸入命令的程序。它之所以被稱作shell是因為它隱藏了操作系統低層的細節。 Bourne-Again shell(ba

20180617_Git常用命令3(一些常用的概念管理git命令

一鍵還原 inf 丟失 為我 實驗 TE order 換工作 二次 Git常用命令3(一些常用的概念和管理git的命令【工作區、暫存區、管理修改、撤銷修改、刪除文件】) 感謝廖雪峰老師提供的git教程: 傳送門: https://www.lia

git的概念常用命令

ini 版本號 個人信息 one mail 多人 lob 分支合並 git log 一、什麽是git? 官方定義:git是版本控制工具。 這裏的版本其實是每一次發布的代碼,git會把每一次提交的代碼都保存下來,並給它一個叫做“版本號”的編號。這類似於期刊出版的過程,每一次出

git - 常用命令常見問題反思

git reset –hard HEAD^ // 回退至上一個版本 git reset –hard 323232323 // 通過git log 回退到指定版本號 Git branch Git branch -r // Git branch -a // git pull以後,輸入命令

Git 常用命令 安裝

  這年頭不會點git還真不能與別人進行程式碼交流      ps: 如上圖就是git的工作流程圖      git add file   # 將file加入暫存區   git commit -m '建立hello.txt'  &nbs

後端---git常用命令使用順序

Git基本瞭解 git命令是一些命令列工具的集合,它可以用來跟蹤,記錄檔案的變動。比如你可以進行儲存,比對,分析,合併等等。這個過程被稱之為版本控制。已經有一系列的版本控制系統,比如SVN, Mercurial, Perforce, CVS, Bitkeepe等等。 Git是分散式的,這意味

Git 常用命令統計程式碼量

摘要 分享Git日常操作中常用的命令,分享如何統計在專案中貢獻的程式碼量。 下面列出Git bash常用命令。 1. git clone **(專案地址) 克隆一個git專案到本地,將git專案拉取到本地 2. git status 檢視檔案狀態,列出當前目錄沒有被git管理,以及被修改過還未提交的

git 常用命令發版流程

Git遠端版本庫一般採用三分支結構,分別為develop,測試分支。master,生產分支,和fixed 修復分支。Git常用遠端分支結構分支名稱使用人員環境測試分支(develop)本地開發新功能後測試人員測試和修復使用發版生產前修復開發使用生產分支(master)遠端伺服

git phabricator arc 常用 命令解析

git: git add . // stage 所有檔案(如果有刪除的不行) git add - -all // stage所有檔案,包括新新增的和刪除的 git commit -am "xx