Git 常用操作技能

來源:互聯網
上載者:User

Git 常用操作技能

學習使用 Git 已經一年有餘,一些常用技能也用的爐火純青了,但偶爾碰到一些生僻的技能,總是需要去 Google,第二次用時又忘了。所以這是一篇我自認為比較重要的 Git 技能表,主要供自己查閱使用,反覆查閱能夠加深印象,提升技能熟練度。如果你是還不知道 Git 是什麼,建議先閱讀 廖雪峰的Git教程。

工作流程

Git 最核心的一個概念就是工作流程。工作區(Workspace)是電腦中實際的目錄;暫存區(Index)像個快取區域,臨時儲存你的改動;最後是版本庫(Repository),分為本地倉庫和遠程倉庫。真是一圖勝千言啊。

遠程倉庫

添加遠程倉庫

git remote add origin git@server-name:path/repo-name.git  #添加一個遠程庫

查看遠程倉庫

git remote      #要查看遠程庫的資訊
git remote -v  #顯示更詳細的資訊

推送分支

git push origin master    #推送到遠程master分支

抓取分支

git clone git@server-name:path/repo-name.git  #複製遠程倉庫到本地(能看到master分支)
git checkout -b dev origin/dev  #建立遠程origin的dev分支到本地,並命名為dev
git checkout origin/dev --track #與上面效果一樣
git pull origin master          #從遠程分支進行更新
git fetch origin master        #擷取遠程分支上的資料

$ git branch --set-upstream branch-name origin/branch-name,可以建立起本地分支和遠程分支的關聯,之後可以直接git pull從遠程抓取分支。

另外,git pull = git fetch + merge to local

刪除遠程分支

$ git push origin --delete bugfix
To https://github.com/wuchong/jacman
 - [deleted]        bugfix

更新遠程分支資訊

項目往前推進的過程中,遠程倉庫上經常會增加一些分支、刪除一些分支。 所以有時需要與遠程同步下分支資訊。

git fetch -p

-p就是修剪的意思。它在fetch之後刪除掉沒有與遠程分支對應的本地分支,並且同步一些遠程新建立的分支和tag。

曆史管理

查看曆史

git log --pretty=oneline filename #一行顯示
git log -p -2      #顯示最近2次提交內容的差異
git show cb926e7  #查看某次修改

版本回退

git reset --hard HEAD^    #回退到上一個版本
git reset --hard cb926e7  #回退到具體某個版
git reflog                #查看命令曆史,常用於協助找回丟失掉的commit

用HEAD表示目前的版本,上一個版本就是HEAD^,上上一個版本就是HEAD^^,HEAD~100就是上100個版本。

管理修改

git status              #查看工作區、暫存區的狀態
git checkout -- <file>  #丟棄工作區上某個檔案的修改
git reset HEAD <file>  #丟棄暫存區上某個檔案的修改,重新放回工作區

查看差異

git diff              #查看未暫存的檔案更新
git diff --cached    #查看已暫存檔案的更新
git diff HEAD -- readme.txt  #查看工作區和版本庫裡面最新版本的區別
git diff <source_branch> <target_branch>  #在合并改動之前,預覽兩個分支的差異

使用內建的圖形化git:gitk,可以更方便清晰地查看差異。當然 Github 用戶端也不錯。

刪除檔案

git rm <file>          #直接刪除檔案
git rm --cached <file>  #刪除檔案暫存狀態

儲藏和恢複

git stash          #儲藏當前工作
git stash list      #查看儲藏的工作現場
git stash apply    #恢複工作現場,stash內容並不刪除
git stash pop      #恢複工作現場,並刪除stash內容

分支管理

建立分支

git branch develop              #只建立分支
git checkout -b master develop  #建立並切換到 develop 分支

合并分支

git checkout master        #切換到主分支
git merge --no-ff develop  #把 develop 合并到 master 分支,no-ff 選項的作用是保留原分支記錄
git branch -d develop      #刪除 develop 分支

標籤

顯示標籤

git tag        #列出現有標籤
git show <tagname>  #顯示標籤資訊

建立標籤

git tag v0.1    #建立標籤,預設位 HEAD
git tag v0.1 cb926e7  #對指定的 commit id 打標籤
git tag -a v0.1 -m 'version 0.1 released'  #建立帶注釋標籤

操作標籤

git checkout <tagname>        #切換到標籤

git push origin <tagname>    #推送分支到源上
git push origin --tags        #一次性推送全部尚未推送到遠端本地標籤

git tag -d <tagname>          #刪除標籤
git push origin :refs/tags/<tagname>      #刪除遠程標籤

Git 設定

設定 commit 的使用者和郵箱

git config user.name "xx"              #設定 commit 的使用者
git config user.email.com "xx@xx.com"  #設定 commit 的郵箱
git config format.pretty oneline        #顯示記錄時,每個提交的資訊只顯示一行

Git 教程系列文章: 

GitHub 使用教程圖文詳解   

Git 標籤管理詳解  

Git 分支管理詳解  

Git 遠程倉庫詳解  

Git 本地倉庫(Repository)詳解  

Git 伺服器搭建與用戶端安裝   

Git 概述  

分享實用的GitHub 使用教程  

Ubuntu下Git伺服器的搭建與使用指南 

Git 的詳細介紹:請點這裡
Git 的:請點這裡

本文永久更新連結地址:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.