Git命令簡介

創建版本庫

通過git init命令把這個目錄變成Git可以管理的倉庫

把文件添加到版本庫

git add把文件提交到倉庫

git add .則是將該目錄下的所有的文件或文件夾遞歸地提交到倉庫

git status命令可以讓我們時刻掌握倉庫當前的狀態

git diff顧名思義就是查看difference,顯示的格式正是Unix通用的diff格式

git commit提交修改到版本庫

git log查看提交的歷史記錄

分支管理

git checkout命令加上-b參數表示創建并切換,相當于以下兩條命令:

git branch dev創建分支

git checkout dev切換分支

git branch命令查看當前分支,該命令會列出所有分支,當前分支前面會標一個*號。

遠程倉庫(GitHub)

創建SSH Key。

在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsaid_rsa.pub這兩個文件,如果已經有了,可直接跳到下一步。如果沒有,打開Shell(Windows下打開Git Bash),創建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

你需要把郵件地址換成你自己的郵件地址,然后一路回車,使用默認值即可,由于這個Key也不是用于軍事目的,所以也無需設置密碼。

如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,里面有id_rsaid_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

在GitHub中添加SSH Key

登陸GitHub,打開“Account settings”,“SSH Keys”頁面,然后,點“Add SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內容點“Add Key”,你就應該看到已經添加的Key。

遠程倉庫的推送和抓取

git remote add origin git@github.com:alanice/learngit.git添加遠程倉庫

git push -u origin master第一次推送master分支的所有內容

git push origin master把本地master分支的最新修改推送至GitHub

git clone克隆一個本地庫

git pullgit fetch的區別

git fetch相當于是從遠程獲取最新版本到本地,不會自動merge

git fetch origin master
git log -p master..origin/master
git merge origin/master

以上命令的含義:

首先從遠程的originmaster主分支下載最新的版本到origin/master分支上

然后比較本地的master分支和origin/master分支的差別,最后進行合并

上述過程其實可以用以下更清晰的方式來進行:

git fetch origin master:tmp
git diff tmp 
git merge tmp

從遠程獲取最新的版本到本地的tmp分支上,之后再進行比較合并

git pull相當于是從遠程獲取最新版本并merge到本地

git pull origin master

上述命令其實相當于git fetchgit merge

在實際使用中,git fetch更安全一些,因為在merge前,我們可以查看更新情況,然后再決定是否合并

新建、刪除遠程分支

git push origin <branch-name>可以把本地分支推送到遠程分支
git push --delete origin <branch-name>可以刪除指定的遠程分支

bug分支

git stash可以把當前工作現場“儲藏”起來,等以后恢復現場后繼續工作

git stash list命令看看剛才的工作現場

git stash apply恢復工作現場,但是恢復后stash內容并不刪除,需要用git stash drop來刪除

git stash pop恢復的同時把stash內容也刪了

只提交一次的文件

git update-index --assume-unchanged FILENAME忽略已經提交的文件

git update-index --no-assume-unchanged FILENAME重新track相關文件

刪除遠程分支和tag

在Git v1.7.0 之后,可以使用這種語法刪除遠程分支:

git push origin --delete <branchname>

可以使用這種語法,推送一個空分支到遠程分支,其實就相當于刪除遠程分支:

git push origin :<branchname>

刪除tag的方法,推送一個空tag到遠程tag,兩種語法作用完全相同。:

git push origin --delete tag <tagname>
git tag -d <tagname>
git push origin :refs/tags/<tagname>

刪除不存在對應遠程分支的本地分支

使用git remote prune origin可以將其從本地版本庫中去除。

更簡單的方法是使用這個命令,它在fetch之后刪除掉沒有與遠程分支對應的本地分支git fetch -p

重命名遠程分支

在git中重命名遠程分支,其實就是先刪除遠程分支,然后重命名本地分支,再重新提交一個遠程分支。

例如下面的例子中,我需要把devel分支重命名為develop分支:

刪除遠程分支:git push --delete origin devel

重命名本地分支:git branch -m devel develop

推送本地分支:git push origin develop

把本地tag推送到遠程

git push --tags

獲取遠程tag

git fetch origin tag <tagname>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,720評論 4 54
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,737評論 9 163
  • 本文為 Git教程的學習筆記,教程源自廖雪峰的博客。這是一個由淺入深,學完后能立刻上手的Git教程。另,附上另一本...
    七弦桐語閱讀 6,275評論 5 47
  • 作為一個喜歡旅行的姑娘,在結婚前,和男友兩個人基本上3個月就要出行一次,旅行對于我來說就像是生活的一部分。 喜歡自...
    MiniKay閱讀 162評論 0 1
  • 在中國當下家庭中,很多孩子都是獨生子女,無疑成了一個家庭的寶貝跟掌上明珠。很多孩子在家里,由于一切日常都...
    馨梔閱讀 779評論 0 2