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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

git协作常用命令

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

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

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

概念解析

借用圖來說明:

  • 幾個概念:

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

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

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

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

  • origin

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

  • ?

常用命令

克隆倉庫:

克隆本地倉庫:

git clone /path/to/repository復(fù)制代碼

克隆遠端服務(wù)器倉庫:

git clone username@host:/path/to/repository復(fù)制代碼

?

設(shè)置上游倉庫

設(shè)置上游倉庫,就可對上游倉庫的代碼進行fetch等操作,多用于協(xié)同開發(fā);

git remote add <name> <url>復(fù)制代碼

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

?

查看上游倉庫

查看所有上游倉庫分支:

git branch -r復(fù)制代碼

查看所有上游倉庫名字:

git remote復(fù)制代碼

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

git remote -v復(fù)制代碼

刪除上游倉庫:

git remote rm <remote>復(fù)制代碼

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

git remote set-url <remote> <url> //這會使原本關(guān)聯(lián)的remote的url替換成新的url復(fù)制代碼

?

分支

創(chuàng)建倉庫的時候,

master

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

創(chuàng)建一個feature_x分支,并且切換到feature_x分支上:

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

刪除分支:

git branch -d feature_x復(fù)制代碼

查看當前所處分支:

git branch復(fù)制代碼

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

git branch --all復(fù)制代碼

?

拉取更新

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

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

git remote update //或者 git fetch --all復(fù)制代碼

合并更新

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

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

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

快捷操作:

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

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

git merge --rebase 復(fù)制代碼

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

?

存儲到緩存區(qū)以及拉取緩存區(qū)內(nèi)容

緩存區(qū)存放工作區(qū)文件改動內(nèi)容,當執(zhí)行g(shù)it stash后,所有改動被放到緩存區(qū),并且工作區(qū)恢復(fù)到?jīng)]有改動之前。

git stash git stash pop復(fù)制代碼

?

添加到暫存區(qū)

添加到暫存區(qū)(index):

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

?

提交和推送改動

提交暫存區(qū)的改動到本地倉庫:

git commit -m "代碼提交信息"復(fù)制代碼

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

git push origin master復(fù)制代碼

強制推送(慎用):

git push --force復(fù)制代碼

?

查看當前狀態(tài)

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

git status復(fù)制代碼

查看記錄

查看所有commit記錄:

git log復(fù)制代碼

git log常用選項:

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

限制輸出長度

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

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

回滾

執(zhí)行g(shù)it reset --hard commit_id :

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

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

如果是--hard參數(shù),則徹底回退到某個版本,本地工作區(qū)也會變?yōu)樯弦粋€版本的內(nèi)容:

git reset --hard a5f2a27f02d32b666e01c24ed2218598db57a183復(fù)制代碼

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

git reset --soft a5f2a27f02d32b666e01c24ed2218598db57a183復(fù)制代碼

這種情況下在push時,要執(zhí)行:

git push --force 復(fù)制代碼

比較提交

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

git diff復(fù)制代碼

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

git diff --cached復(fù)制代碼

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

git diff Head復(fù)制代碼

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

git diff test復(fù)制代碼

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

git diff --stat復(fù)制代碼

比較兩個分支的操作:

git diff <source_branch> <target_branch>復(fù)制代碼

?

交互式的rebase

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

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

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

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

?

參考鏈接

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

git協(xié)同開發(fā):www.cnblogs.com/arkenstone/…

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

gitbook:gitbook.liuhui998.com/index.html


總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。