Git使用和基本命令

版本庫(Repository)

工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。

Git的版本庫裏存了很多東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,還有Git爲我們自動創建的第一個分支master,以及指向master的一個指針叫HEAD

一個git倉庫管理一個工程

git init    //創建一個倉庫,在工程目錄下有一個隱藏的目錄.git

git add 文件   //提交到暫存區

git add .  //在工程目錄下git add . 就可以提交所有修改的和新建的數據暫存區

git commit -m "說明信息"      //把暫存區內容提交到當前分支

git status      //查看狀態

git diff 文件 //查看文件修改,git diff比較文件被git add之前有無差異

git diff --cached 或 git diff --cached //查看已暫存的將要添加到下次提交裏的內容的變化

git log //查看日誌

git log --pretty=oneline

git log --graph --pretty=oneline --abbrev-commit //查看日誌圖表

git log -p -2 //-p 選項展開顯示每次提交的內容差異,-2 則僅顯示最近的兩次更新:

git reflog //查看所有提交的log,可以查看每次變動的版本號,方便查閱

git reset --hard HEAD^ //回退到上一個版本

git reset --hard HEAD^^ //回退到上上個版本

git reflog //查看執行過的命令

git checkout -- 文件 //回退到上一次修改

git checkout . //這條命令把 當前目錄所有修改的文件 從HEAD中籤出並且把它恢復成未修改時的樣子

git reset --hard 文件號 //指定回退到版本號對應的文件中去

git reset HEAD 文件 //可以回退版本,也可以把暫存區的修改回退到工作區。用HEAD,表示最新的版本

git rm 文件   //確實要從版本庫中刪除該文件,刪除完再git commit

撤銷修改

場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。

場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD                    <file>,就回到了場景1,第二步按場景1操作。

場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,前提是沒有推送到遠程庫,先用git reset -- hard HEAD^

創建遠程倉庫

1.git config --global user.name "Your Name"

2. git config --global user.email "[email protected]"

3.ssh-keygen -t rsa -C "[email protected]"    //生成SSH密鑰,一路回車,使用默認值即可,在用戶主目錄裏找到.ssh目錄,裏面有id_rsaid_rsa.pub兩個文件,這兩個就是SSH Key的祕鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰;登陸GitHub,打開“Account settings”,“SSH Keys”頁面:然後,點“Add SSH Key”,填上任意Title,在Key文本框裏粘貼id_rsa.pub文件的內容

4. git remote add origin 遠程庫URL //URL時是gihub中的SSH,添加新的遠程倉庫

5. git push origin master //遠程提交 第一次提交用git push -u origin master

6.git remote set-url origin 你的遠端地址   //  設置遠端倉庫地址

7.git remote add <shortname> <url>      //添加一個新的遠程 Git 倉庫

 eg:git remote add pg https://github.com/paul/tic  //pg爲遠程倉庫名

8.git remote -v   //查看遠程倉庫

刪除遠程倉庫

git remote rm origin //刪除遠程 Git 倉庫

git clone 遠程庫URL //克隆一個本地庫,從遠程倉庫中把工程克隆到本地電腦

git remote //查看遠程庫的信息

git remote show [remote-name] //查看某一個遠程倉庫的更多信息

git remote rename //去修改一個遠程倉庫的簡寫名 git remote rename pg pvul //將 pg 重命名爲 pvul

git remote rm [remote-name] //刪除指定的遠程倉庫

分支操作

git checkout -b dev //創建並切換到dev分支,分支名叫“dev”

注:要留意你的工作目錄和暫存區裏那些還沒有被提交的修改,它可能會和你即將檢出的分支產生衝突從而阻止 Git 切換到該分支。 最好的方法是,在你切換分支之前,保持好一個乾淨的狀態。

git checkout 分支名 //切換分支

git branch //查看當前分支

git branch 分支名 //創建分支

git merge 分支名 //合併指定分支到當前分支

git branch -d 分支名 //刪除分支

git branch -D 分支名 //刪除分支

git branch --set-upstream-to=origin/dev dev //指定本地dev分支與遠程origin/dev分支的鏈接,設置dev和origin/dev的鏈接

git pull    //把最新的更新提交從遠程庫中抓下來

git pull origin(遠程倉庫名) master(分支名) //自動的抓取然後合併遠程分支到當前分支

git push [remote-name] [branch-name]

git push origin --delete [branch-name] //刪除遠程的一個分支

 

git merge --abort //終止合併衝突

git merge --no-ff -m "相關說明信息" 分支名 // --no-ff參數,表示禁用Fast forward

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

git stash list //查看工作現場

git stash pop //恢復工作現場同時把stash內容也刪了

 

將遠程分支的dev分支重命名爲deve分支步驟如下:

1.先刪除遠程分支: git push --delete origin dev

2.重命名本地分支: git branch -m dev deve

3.重新提交一個遠程分支: git push origin deve

標籤操作

git tag <name> //打一個新標籤 如:git tag v1.0

git tag //查看所有的標籤

git tag <name> commit id //給對應的commit id 打一個標籤。如:git tag v0.9 f52c633

git log --pretty=oneline //可以查看到標籤

git show <tagname> //查看標籤信息 如: git show v0.9

git tag -d <tagname> //刪除標籤,如:git tag -d v0.1

git push origin --delete tag <tagname> //刪除遠程的標籤

git push origin <tagname> //推送某個標籤到遠程

git push origin --tags //一次性推送全部尚未推送到遠程的本地標籤

刪除遠程標籤的步驟

1.git tag -d <tagname> //先刪除本地標籤

2.git push origin :refs/tags/<tagname> //在從遠程刪除

多人協作模式

首先,可以試圖用git push origin <branch-name>推送自己的修改;

如果推送失敗,則因爲遠程分支比你的本地更新,需要先用git pull試圖合併;

如果合併有衝突,則解決衝突,並在本地提交;沒有衝突或者解決掉衝突後,再用git push origin <branch-name>推送就能成功

重點說明:

如果因爲提交錯誤,可以git reset HEAD^ 回退到你要提交代碼時的工作區,重新git add 想要的文件 到暫存區,然後git commit -m "" 提交,然後git push -f origin dev(分支名) //強推覆蓋遠程分支。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章