歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Git 常用操作技能

Git 常用操作技能

日期:2017/2/28 13:55:22   编辑:Linux教程

學習使用 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 "[email protected]" #設置 commit 的郵箱
git config format.pretty oneline #顯示歷史記錄時,每個提交的信息只顯示一行

Git 教程系列文章

GitHub 使用教程圖文詳解 http://www.linuxidc.com/Linux/2014-09/106230.htm

Git 標簽管理詳解 http://www.linuxidc.com/Linux/2014-09/106231.htm

Git 分支管理詳解 http://www.linuxidc.com/Linux/2014-09/106232.htm

Git 遠程倉庫詳解 http://www.linuxidc.com/Linux/2014-09/106233.htm

Git 本地倉庫(Repository)詳解 http://www.linuxidc.com/Linux/2014-09/106234.htm

Git 服務器搭建與客戶端安裝 http://www.linuxidc.com/Linux/2014-05/101830.htm

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm

分享實用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm

Ubuntu下Git服務器的搭建與使用指南 http://www.linuxidc.com/Linux/2015-07/120617.htm

Git 的詳細介紹:請點這裡
Git 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved