Git經常使用指令

一、建立版本庫git

  $ git init併發

二、把文件添加到版本庫app

  step1: 用命令 git add 告訴Git,把文件添加到倉庫ssh

    $ git add file.txt (一次提交多個文件 $ git add file1.tet file2.txt ...)fetch

  step2: 用命令 git commit 告訴Git,把文件提交到倉庫spa

    $ git commit -m "提交描述xxx" 日誌

三、查看文件狀態code

  $ git statusserver

四、查看文件修改內容rem

  $ git diff file.txt

  或查看工做區和版本庫裏最新版本版本的區別:

  $ git diff HEAD -- file.txt

五、查看提交日誌(從最近到最遠,HEAD指向當前版本)

  $ git log 或 $ git log --oneline (簡短commit id) 或 $ git log --pretty=oneline (完整commit id)

六、查看命令歷史(可查看版本回退後不見的commit id,以便從新返回到「將來」某個版本)

  $ git reflog

七、查看文件內容

  $ cat file.txt

八、版本回退

  $ git reset --hard commit_id (commit_id 具體的提交ID)

  $ git reset --hard HEAD^ (HEAD^ 表示回退到上個版本)

九、撤銷工做區的修改

  $ git checkout -- file.txt (命令中「--」很重要,沒有「--」,就變成「切換到另外一個分支」的命令了)

  分兩種狀況:

    一種是file.txt文件自修改後尚未被存放到暫存區(未git add),如今,撤銷修改就回到和版本庫如出一轍的狀態;

    一種是file.txt文件已添加到暫存區後,又作了修改,如今,撤銷修改就回到添加到暫存區後的狀態(已git add的內容不變,未git add的內容所有撤銷修改)。

    總之,就是讓這個文件回到最近一次git commit 或git add 時的狀態。

十、撤銷暫存區的修改

  $ git reset HEAD file.txt (把暫存區(git add)的修改撤銷掉,從新放回工做區)

十一、刪除文件

  step1:直接刪除文件,或者用rm命令(沒有git前綴)

    $ rm file.txt

  step2: 面臨兩個選擇,肯定要刪除仍是從新恢復

  從新恢復:

    $ git checkout -- file.txt (git checkout實際上是用版本庫裏的版本替換工做區的版本,不管工做區是修改仍是刪除,均可以「一鍵還原」)

  肯定要刪除(須要執行兩個命令):

    $ git rm file.txt (或 git add file.txt)

    $ git commit -m "提交描述" 

十二、關聯本地倉庫到遠程倉庫(遠程空倉庫)

  step1: 關聯遠程倉庫

    $ git remote add origin git@server-name:path/repo-name.git

  step2: 推送本地分支的全部內容到遠程倉庫

    $ git push -u origin master (第一次推送時加上參數 -u,會將本地的master分支和遠程的master分支關聯起來)

  step3: 推進後續的本地提交到遠程倉庫

    $ git push origin master (後續的推送不須要加參數 -u,會自動關聯本地的master分支和遠程的master分支)

  注意:本地的倉庫名須要與遠程的倉庫名相同

1三、關聯本地倉庫到遠程倉庫(遠程倉庫已有內容)

  step1: 關聯遠程倉庫

    $ git remote add origin git@server-name:path/repo-name.git

  step2: 拉取遠程內容到本地

    $ git pull origin master --allow-unrelated-histories

  step3: 解決衝突

    step2有時會出現衝突(master|MERGING),須要根據實際狀況解決衝突

  step4: 提交合並後的內容

    $ git add file.txt

    $ git commit -m 「解決衝突」

    $ git push -u origin master

  說明:step2中,執行命令git push -u origin master 會由於遠程倉庫中已有提交而失敗,執行git pull 會由於還未關聯遠程分支而失敗;

1四、刪除與遠程庫間的關聯

  $ git remote rm origin (刪除成功後可從新關聯新的遠程庫)

1四、從遠程庫克隆

  $ git clone git@server-name:path/repo-name.git (或 git clone https://server-name:path/repo-name.git)

  說明:

    ① Git支持多種協議,默認的 git:// 使用ssh,但也可使用 https 等其它協議

    ② 使用 https 除了速度慢之外,還有個最大的麻煩是每次推送都必須輸入口令(有的只須要第一次輸入)

1五、分支經常使用命令

  $ git branch (查看本地分支;git branch -r 查看遠程分支;git branch -a 查看本地和遠程分支)  

  $ git branch <branch_name> (建立本地分支)

  $ git checkout <branch_name> 或者 git switch <branch_name> (切換分支)

  說明:git switch 命令是git v2.23 版本新發布的

  $ git checkout -b <branch_name> 或者 git switch -c <branch_name> (建立並切換分支)  

  $ git checkout -b <branch_name> origin/<branch_name> (檢出遠程分支到本地)

  $ git branch --set-upstream-to=origin/<branch_name> <branch_name> (創建本地分支和遠程分支的關聯,遠程庫中已有要關聯的分支才成功)

  $ git push --set-upstream origin <branch_name> (創建本地分支和遠程分支的關聯,遠程庫中沒有要關聯的分支)

  $ git merge <branch_name> (合併branch_name分支到當前分支)

  $ git branch -d <branch_name> (刪除本地分支)

  $ git branch -D <branch_name> (強行刪除,可強行刪除有提交未合併的分支)

  $ git push origin --delete <branch_name> (刪除遠程分支)

  $ git push origin <branch_name> (推送本地提交到遠程分支)

  $ git branch -vv (查看本地分支與遠程分支的追蹤關係)

  $ git fetch -p (刪除遠程倉庫已刪除的遠程分支,或:git fetch --prune origin)

1六、合併、解決衝突

  step1: 合併其它分支內容到當前分支

    $ git merge branch_feature

  step2: 解決衝突(當合併發生衝突時,狀態變爲 mater|MERGIN)

    ① 根據具體狀況手動解決衝突

    ② git add file.txt

    ③ git commit -m "confict fixed" (狀態恢復爲 master)

    ④ git push origin master

  提示:查看分支的合併狀況,git log --graph --pretty=oneline --abbrev-commit

1七、禁用Fast forward模式

  $ git merge --no-ff -m "合併描述信息" develop

1八、暫存

  $ git stash

  $ git stash list (查看全部暫存)

  $ git stash apply (恢復stash,但不刪除stash)

  $ git stash pop (恢復stash,同時刪除stash)

  $ git stash drop (刪除stath)

  $ git stash apply stash@{0} (恢復指定stash,其它指令相似)

1九、複製其它分支的提交內容到當前分支

  $ git cherry-pick <commit_id>

20、查看遠程庫信息

  $ git remote

  $ git remote -v (「fetch」, 可拉取;「push」,可推送。沒有「push」的連接,說明沒有推送權限)

2一、合併提交

  $ git rebase i start_commit_id end_commit_id

2二、強制推送

  $ git push -f origin branch_feature

2三、本地分支關聯遠程分支 

  $ git branch --set-upstream-to=origin/<branch_name> <branch_name> (創建本地分支和遠程分支的關聯,遠程庫中已有要關聯的分支才成功) 

  $ git push --set-upstream origin <branch_name> (創建本地分支和遠程分支的關聯,遠程庫中沒有要關聯的分支)

 2四、獲取遠程主機的更新到本地

  $ git fetch origin

2五、刪除遠程已刪除的分支

  step1: 查看remote地址,遠程分支,還有本地分支與之相對應關係等信息

    $ git remote show origin

  step2: 根據提示,刪除遠程倉庫中已不存在的遠程分支

    $ git remote prune origin

相關文章
相關標籤/搜索