我所記錄的git命令(非常實用)
一、前言
記錄一下工作中常用到的git命令,只是簡單的筆記,歡迎大家交流...
[
順便問下園友們,怎麼感覺部落格園釋出的部落格搜尋有時都搜不到,後臺編輯能填的都填寫了,還是覺得搜尋排名不高?
相同的標題搜尋到的都是被抓取工具抓取的另一個平臺下的文章了...
]
還是先貼張圖(此圖來自阮大神的blog)
二、git branch 和 git checkout
git branch //檢視當前分支 git branch -r //列出遠端分支 git branch -a //列出所有分支 git branch branchName //建立分支 git checkout branchName //切換分支 git checkout -b branchName //建立並切換到分支 git checkout //後面不跟任何引數,則就是對工作區進行檢查 git checkout --filename //從暫存區中恢復檔案(確保filename與branch名稱不同) git status //檢視狀態
三、git clone 和 git remote
git clone <版本庫的網址> <本地目錄名> git clone支援多種協議,除了HTTP(s)以外,還支援SSH、Git、本地檔案協議等,下面是一些例子。 $ git clone http[s]://example.com/path/to/repo.git/ $ git clone ssh://example.com/path/to/repo.git/ $ git clone git://example.com/path/to/repo.git/ $ git clone /opt/git/project.git $ git clone file:///opt/git/project.git $ git clone ftp[s]://example.com/path/to/repo.git/ $ git clone rsync://example.com/path/to/repo.git/ SSH協議還有另一種寫法 $ git clone [[email protected]]example.com:path/to/repo.git/ ========================================= git remote git remote -v //檢視遠端主機的網址 git remote show <主機名> //檢視該主機的詳細資訊 git remote add <主機名> <網址> //新增遠端主機 git remote rm <主機名> //刪除遠端主機 git remote rename <原主機名> <新主機名> //重新命名遠端主機
四、git pull 和 git push
$ git pull <遠端主機名> <遠端分支名>:<本地分支名> $ git push <遠端主機名> <本地分支名>:<遠端分支名> from to git pull origin master:master 取回origin主機的master分支,與本地的master分支合併 git push origin master:master 推送本地的master分支,與origin主機的master分支合併 git pull origin master 如果遠端分支是與當前分支合併,則冒號後面的部分可以省略。 git push origin master 本地的master分支推送到origin主機的master分支。如果後者不存在,則會被新建 git pull origin 本地的當前分支自動與對應的origin主機”追蹤分支”(remote-tracking branch)進行合併。 追蹤分支 是 遠端的同名分支 git push origin 當前分支與遠端分支之間存在追蹤關係,則本地分支和遠端分支都可以省略 git pull 當前分支自動與唯一一個追蹤分支進行合併 git push 當前分支只有一個追蹤分支,那麼主機名都可以省略
五、git merge 和 git rebase
git merge 用"pull"命令把"origin"分支上的修改拉下來並且和你的修改合併; 結果看起來就像一個新的"合併的提交"(merge commit): //使用 rebase 合併 $ git checkout mywork $ git rebase origin 這些命令會把你的"mywork"分支裡的每個提交(commit)取消掉, 並且把它們臨時 儲存為補丁(patch)(這些補丁放到".git/rebase"目錄中), 然後把"mywork"分支更新 到最新的"origin"分支, 最後把儲存的這些補丁應用到"mywork"分支上 在rebase的過程中,也許會出現衝突(conflict). 在這種情況, Git會停止rebase並會讓你去解決 衝突;在解決完衝突後, 用"git-add"命令去更新這些內容的索引(index), 然後,你無需執行 git-commit,只要執行: $ git rebase --continue 這樣git會繼續應用(apply)餘下的補丁。 在任何時候,你可以用--abort引數來終止rebase的行動,並且"mywork" 分支會回到rebase開始前的狀態。 $ git rebase --abort
六、git log
git log --stat -n 5 // 簡單的列出了修改過的檔案 git log -p -n 5 // 詳細的列出修改過的檔案,及提交檔案的對比 git log --graph // ASCII 字串表示的簡單圖形,形象地展示了每個提交所在的分支及其分化衍合情況 git log --all --decorate --graph git log --pretty=oneline // 只顯示雜湊值和提交說明 git log --pretty=oneline/short/full/fuller/format:""(格式等) git log --name-only // 僅在提交資訊後顯示已修改的檔案清單 git log --no-merges // 不顯示merge的log git log --name-status -n 5 --author='fanfan' // 按作者篩選 git log --name-status -n 5 --grep='commit desc' //按提交描述內容篩選 git log --name-status -n 5 -- path/file1 path/file2 //按提交的檔案篩選 git log --name-status -n 5 -S"hello world" //按檔案內容篩選 git log --name-status -n 5 -G"xxx" //按檔案內容篩選(正則匹配) 常用的命令: git log --name-status -n 5 --no-merges path/filename // 顯示新增、修改、刪除的檔案清單(不包含merge的log) git log --name-status --skip=5 -n 5 --no-merges path/filename // 略過5條,從第6條開始取5條log
七、git stash
儲存工作現場 git stash // 儲存工作現場 do some work git pop // 返回工作現場 git stash list //檢視 stash 佇列 git stash pop [email protected]{num} // num就是list中要恢復的工作現場編號 // 使用pop命令恢復的工作現場,其對應的stash 在佇列中刪除 git stash apply [email protected]{num} // num就是list中要恢復的工作現場編號 // 使用apply命令恢復的工作現場,其對應的stash 在佇列中不刪除 git stash clear // 情況 stash 佇列
八、分支合併
分支合併: 1.保持工作目錄 clean 2.git checkout master //切換到主幹 3.git merge subscribeQY //在主幹上合併分支 4.如果有衝突就解決一下 master push前,在分支上merge master 然後,在master上,merge 分支,在 push
九、衝突解決
[Tips]:發生衝突時,你可以手工將需要合併的這個分支/版本merge到自己的分支上,解決衝突後提交,可避免此情況的發生. [Tips]:你可以根據如下步驟解決衝突: 1、git fetch 2、git checkout releases/xxx (注:如本地還未檢出過釋出分支,請執行 git checkout -b releases/xxx origin/releases/xxx) 3、git pull 4、使用版本號合併,將出現的衝突一一解決 git merge --no-ff b109eff1348a2fcf9a793deb81f3981d691e453c 5、git status 檢視衝突,並按命令提示進行修復 6、git add xxx git commit xxx 7、git push origin releases/xx
十、其他
$ git fetch <遠端主機名> <分支名> git fetch origin master 取回origin主機的master分支 git checkout . #本地所有修改的。沒有的提交的,都返回到原來的狀態 git stash #把所有沒有提交的修改暫存到stash裡面。可用git stash pop回覆。 git reset --hard HASH #返回到某個節點,不保留修改。 git reset --soft HASH #返回到某個節點。保留修改
十一、參考資料
http://www.ruanyifeng.com/blog/2014/06/git_remote.html http://gitbook.liuhui998.com/4_2.html http://www.tuicool.com/articles/A3Mn6f
相關推薦
我所記錄的git命令(非常實用)
一、前言 記錄一下工作中常用到的git命令,只是簡單的筆記,歡迎大家交流... [ 順便問下園友們,怎麼感覺部落格園釋出的部落格搜尋有時都搜不到,後臺編輯能填的都填寫了,還是覺得搜尋排名不高? 相同的標題搜尋到的都是被抓取工具抓取的另一個平臺下的文章了... ] 還是先貼張
xshell的快捷鍵(非常實用)
crt 現在 one last 次數 variable use shel arc 刪除ctrl + d 刪除光標所在位置上的字符相當於VIM裏x或者dlctrl + h 刪除光標所在位置前的字符相當於VIM裏hx或者dhctrl + k 刪除
ERP 國企集團管理創新指標群(非常實用)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
python程式碼異常範圍檢查方法(非常實用)
對於python程式設計的程式碼,如果需要進行相應的檢查其中的錯誤或者異常,並且確定出現異常語句的大致範圍,主要有以下四種方法: 1、第一種方法:遇錯即止(告知原因) try ......(所需檢查語句) ......(出錯語句) ......(後面的程式碼)%將不進行執行
資料庫優化設計(非常實用)
一、樹型關係的資料表 不少程式設計師在進行資料庫設計的時候都遇到過樹型關係的資料,例如常見的類別表,即一個大類,下面有若干個子類,某些子類又有子類這樣的情況。當類別不確定,使用者希望可以在任意類別下新增新的子類,或者刪除某個類別和其下的所有子類,而且預計以後其
debug 技巧 包括各種場景的debug方法(非常實用)
debug是ABAP開發裡面非常重要的一項技能,下面介紹一些小的技巧,可以提高debug的效率: 1、通過對SE16 debug修改某條資料(這個方法比較靠譜):(這個方法和SM30一樣只能修改非key值的欄位)
PostgreSQL使用建議(非常實用)
一、命名規範 1. DB object: database, schema, table, view, index, function, trigger等名稱 (1) 建議使用小寫字母、數字、下劃線的組合 (2) 建議不使用雙引號即"包圍,除非必須包含大寫字母或空格等特殊字
Pycharm使用教程 (非常實用)
一,PyChram下載官網:http://www.jetbrains.com/pycharmWindows:http://www.jetbrains.com/pycharm/download/#section=windowsLinux:http://www.jetbrains
hibernate的多條件動態查詢(非常實用)
在hibernate中是支援多條件動態查詢的。這種問題是非常實用的。比如說你做一個專案要實現一個複合查詢。 例如有這麼一個介面: 那麼要實現這個查詢,對於使用者來說他的查詢條件可能不健全。有可能只填寫其中的1-3項。那麼要實現這個查詢。我們可以用hibernate的動態
Spring NoSuchBeanDefinitionException六大原因總結(非常實用)【新增第三方jar的類 作Service層的依賴失敗 因為此錯。xml定義“同名bean”解決】
=====給了我思路。【新增第三方jar的類 作Service層的依賴失敗 因為此錯。xml定義“同名bean”解決】======1. OverviewIn this article, we are discussing the Springorg.springframewo
[轉]xshell的快捷鍵(非常實用)
#c+l 清屏先 [email protected]:~>str1 str2 str3 #輸入三個單詞發現第一單詞需要大寫好按c+a跳到開頭按a+c [email protected]:~> Str1 str2 str3 #好現在單詞就變成了現在這個樣子,又發現第二個單
2. github創建 git倉庫,克隆,拉取和推送操作(所有的git命令前提是一定在當前項目目錄下)
push mit 什麽 one alt class 所有 -m 註冊 步驟: 1.點擊小貓,回到初始頁面 2.點擊start a project,首先會出現一個驗證email地址(我們註冊的時候,有一個email輸入,進去郵箱驗證一下) 3.重新點擊sta
Git常用命令總結(超實用)【轉】
轉自:https://www.linuxprobe.com/git-common-commands.html 本文由LinuxProbe.Com團隊成員逄增寶整理髮布,原文來自:Linux就這麼學。 導讀 Git是一款免費、開源的分散式版本控制系統,用於敏捷高效地
Git命令(檢視倉庫歷史記錄)
git log 命令 // 終端顯示 git log 命令的輸出結果 zhanghuabin-mac:course-git-blog-project zhanghuabin$ git log commit a3dc99a197c66ccb87e3f49055
git命令大全(非常齊全)
$ git init // 初始化一個Git倉庫 $ git status // 檢視倉庫的狀態 $ git add . // 將所有修改新增到暫存區 $ git add * // Ant風格新增修改 $ git add *Controller // 將以C
git常用命令(持續更新)
git pull java com mit res mail dsa 切換 設置 1、設置用戶名和郵箱: git config --global user.name ""; git config --global user.email ""; git config --li
Shell記錄-Shell命令(其他)
時間設置 buffer idt 不顯示 secure 單個 包括 too 工作方式 top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似於Windows的任務管理器。 .命令格式 top [參數] Shell 2.命令功能 顯示當
git命令(9): 常見問題cover
簡單 就刪除 轉變 當前 mit 文件內容 全部 out 遠程倉庫 轉載地址: https://blog.csdn.net/kkkkkxiaofei/article/details/41483039 情景1:多人協作之如何建立本地分支? 假若你已經clone了別人的倉庫並且
零基礎學習linux所需掌握的簡單命令 (第二周)
linuxumask 003 目錄權限為774 文件為664 文件為奇數的時候計算結果默認在加上1 目錄 文件rwx rwx rwx 777 rw- rw- rw- 666-
零基礎學習linux所需掌握的簡單命令 (第一周)
linux命令符後面是# 表示是超級管理員命令符後面是$ 表示是普通用戶tty 查看所在哪個終端[root@centos6 ~]# cat /etc/shells 查看當前系統所安裝的shell[root@centos6 ~]# echo $SHELL 查看當前使用的何種shellA=123$變量echo