日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git协作常用命令

發布時間:2025/3/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git协作常用命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下為git常用的命令的總結,方便大家查閱與參考:

以下文章中,遠程倉庫表示git clone 來源的倉庫,上游倉庫是git add <remote>的倉庫;

概念解析

借用圖來說明:

  • 幾個概念:

    • workspace:工作區,也就是我們寫代碼的地方,它持有實際的文件;

    • index:也可以叫做stage,暫存區,它實際上就是一個包含文件索引的目錄樹 ,當對工作區修改(或新增)的文件執行 "git add" 命令時,暫存區的目錄樹被更新。

    • local repository:本地倉庫,我們使用“git commit”時,實際是把代碼提交到了本地倉庫;

    • remote repository:遠端倉庫,當我們使用“git push”時,才將我們的本地代碼提交到了遠端的倉庫,比如github上。

  • origin

    • 遠程庫的名字就是origin,這是Git默認的叫法,也可以改成別的。

  • ?

常用命令

克隆倉庫:

克隆本地倉庫:

git clone /path/to/repository復制代碼

克隆遠端服務器倉庫:

git clone username@host:/path/to/repository復制代碼

?

設置上游倉庫

設置上游倉庫,就可對上游倉庫的代碼進行fetch等操作,多用于協同開發;

git remote add <name> <url>復制代碼

url是遠程倉庫的的地址,這么設置后,可用name代替url;

?

查看上游倉庫

查看所有上游倉庫分支:

git branch -r復制代碼

查看所有上游倉庫名字:

git remote復制代碼

查看所有上游倉庫名字和git地址:

git remote -v復制代碼

刪除上游倉庫:

git remote rm <remote>復制代碼

替換已有的上游分支的url:

git remote set-url <remote> <url> //這會使原本關聯的remote的url替換成新的url復制代碼

?

分支

創建倉庫的時候,

master

是“默認的”。在其他分支上進行開發,完成后再將它們合并到主分支上。

創建一個feature_x分支,并且切換到feature_x分支上:

git checkout -b feature_x //不加-b則是切換到某一分支上復制代碼

刪除分支:

git branch -d feature_x復制代碼

查看當前所處分支:

git branch復制代碼

查看包括上游倉庫與遠程倉庫所有分支:

git branch --all復制代碼

?

拉取更新

git fetch //拉取遠程倉庫更新到本地倉庫,默認為git clone的那個倉庫; git fetch <name> <branch> //拉取遠程倉庫名為<name> 的 某一分支<branch>上的代碼,<branch>可省略;復制代碼

如果我們有多個remote都需要更新,可以使用:

git remote update //或者 git fetch --all復制代碼

合并更新

如果有沖突,則要手動合并;

在合并之前可以選擇性執行如下操作:

git diff <name>/<target_branch>//比較本地工作區與上游倉庫特定分支的差別; git stash //保存當前更改到緩存區 git merge <name>/<target_branch> //將上游倉庫的特定分支代碼合并到本地; git stash pop //將緩存區代碼提出到本地,并修改沖突;復制代碼

快捷操作:

git pull //相當于git fetch和git merge的兩部操作 復制代碼

強制更新遠程倉庫的代碼到本地(慎用):

git merge --rebase 復制代碼

rebase與merge區別參考鏈接:hackernoon.com/git-merge-v…

?

存儲到緩存區以及拉取緩存區內容

緩存區存放工作區文件改動內容,當執行git stash后,所有改動被放到緩存區,并且工作區恢復到沒有改動之前。

git stash git stash pop復制代碼

?

添加到暫存區

添加到暫存區(index):

git add <filename>;//添加單個文件; git add . //git 2.0 以上添加所有改動; git add -u //添加修改某些文件和刪除某些文件的改動,但不添加新建文件的改動;復制代碼

?

提交和推送改動

提交暫存區的改動到本地倉庫:

git commit -m "代碼提交信息"復制代碼

推送本地倉庫改動到遠程倉庫,比如要提交到master分支上:

git push origin master復制代碼

強制推送(慎用):

git push --force復制代碼

?

查看當前狀態

列出當前目錄所有還沒有被git管理的文件和被git管理且被修改但還未提交(git commit)的文件:

git status復制代碼

查看記錄

查看所有commit記錄:

git log復制代碼

git log常用選項:

選項說明
-p按補丁格式顯示每個更新之間的差異
–stat顯示每次更新的文件修改統計信息
–shortstat只顯示 –stat 中最后的行數修改添加移除統計
–name-only僅在提交信息后顯示已修改的文件清單
–name-status顯示新增、修改、刪除的文件清單
–abbrev-commit僅顯示 SHA-1 的前幾個字符,而非所有的 40 個字符
–relative-date使用較短的相對時間顯示(比如,“2 weeks ago”)
–graph顯示 ASCII 圖形表示的分支合并歷史
–pretty使用其他格式顯示歷史提交信息。可用的選項包括 oneline,short,full,fuller 和 format(后跟指定格式)

限制輸出長度

  • 除了用 -n 來限制輸出 log 的條數,還可以用 --since 和 --until 按照時間作限制。

  • 用 --author 選項顯示指定作者的提交,用 --grep 選項搜索提交說明中的關鍵字。

回滾

執行git reset --hard commit_id :

例如我們需要回退到新增MVC模式的上一個版本,則執行:

git reset a5f2a27f02d32b666e01c24ed2218598db57a183 //此為默認方式,不帶任何參數的git reset它回退到某個版本,只保留源碼,回退commit和index信息復制代碼

如果是--hard參數,則徹底回退到某個版本,本地工作區也會變為上一個版本的內容:

git reset --hard a5f2a27f02d32b666e01c24ed2218598db57a183復制代碼

如果是--soft參數,會保留工作區和暫存區的記錄,在下次可以直接commit:

git reset --soft a5f2a27f02d32b666e01c24ed2218598db57a183復制代碼

這種情況下在push時,要執行:

git push --force 復制代碼

比較提交

比較當前工作區與暫存區之間的差異:

git diff復制代碼

比較暫存區與本地倉庫之間的差異:

git diff --cached復制代碼

比較當前工作區與本地倉庫之間的差異:

git diff Head復制代碼

比較當前工作區與另外一個分支的差別,比如分支為test:

git diff test復制代碼

比較當前工作區與暫存區有哪些文件被改動,改動了多少行:

git diff --stat復制代碼

比較兩個分支的操作:

git diff <source_branch> <target_branch>復制代碼

?

交互式的rebase

列出即將push的所有git commit ,編輯這些commit,可以對這些commit進行合并,修改,丟棄,編輯,拆分操作:

git rebase -i //會打開編輯器,可修改commit記錄 git rebase -i <after-this-commit> //當前分支中的所有提交復制代碼

rebase 參考鏈接git-scm.com/docs/git-re…;

rebase 拆分commit參考鏈接:www.codebelief.com/article/201…/

?

參考鏈接

git簡易指南:www.bootcss.com/p/git-guide/

git協同開發:www.cnblogs.com/arkenstone/…

github文章借鑒:github.com/WarpPrism/B…

gitbook:gitbook.liuhui998.com/index.html


總結

以上是生活随笔為你收集整理的git协作常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。