[編輯修訂01]git 常用命令和Gerrit的聯合使用常用命令
* 建立空的分支:(執行命令之前記得先提交你當前分支的修改,否則會被強制刪乾淨沒得後悔) 方法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 7)Git一鍵推送多個遠端倉庫 編輯本地倉庫的.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 log --oneline --graph --name-status 既可以看到簡介的日誌資訊,也可以看到改了哪些檔案,一舉兩得:
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,中文就顯示正常。 修正前: 修正後: 》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 -&
git和Gerrit聯合使用命令
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