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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Git复习(十一)之常见命令用法

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git复习(十一)之常见命令用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

創建版本庫

git init

進入一個文件,執行該命令此時目錄下多了一個.git的目錄,這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄里面的文件,不然改亂了,就把Git倉庫給破壞了。如果你沒有看到.git目錄,那是因為這個目錄默認是

隱藏的,用ls -ah命令就可以看見。

添加文件到Git倉庫

第一步:添加到暫存區

git add xxx

xxx可以是“.”表示所有文件,也可以是指定的文件名,該命令可反復多次使用,添加多個文件

??如果此時添加失敗,可能是這個文件被.gitignore忽略了,如果我們確實想添加該文件可以使用參數 -f?

強制添加文件

git add -f xxx

第二步:提交到倉庫

git commit -m "xxx"

xxx是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。

執行完該命令可能會提示:

  • 1 file changed:1個文件被改動

  • 2 insertions:插入了兩行內容

??如果不用git add到暫存區,那就不會加入到commit中

查看當前工作區的狀態?

git status

執行完該命令可能會提示:?

  • Changes not staged for commit(還沒有準備提交的修改)

查看修改內容

情況一:查看當前文件的修改

git diff xxx

xxx想要查看修改的文件名

情況二:查看當前版本和版本庫最新版本的區別

git reset HEAD -- xxx

xxx想要查看修改的文件名

查看提交歷史

git log?

命令顯示從最近到最遠的提交日志,可以通過git log來確定要回退到哪個版本

git log --pretty=oneline

嫌輸出信息太多,看得眼花繚亂的,可以試試加上--pretty=oneline參數

??你看到的一大串類似1094adb...的是commit id(版本號)

版本回退(已經commit,回到某一個commit)

git reset --hard xxx

xxx表示版本號或者HEAD

情況一:回退到上一個版本

git reset --hard HEAD^

情況二:回退到上上一個版本

git reset --hard HEAD^^

情況三:回退到上100個版本

git reset --hard HEAD~100

首先,Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較

容易數不過來,所以寫成HEAD~100。

情況四:回退到回退之前的版本

git reset --hard xxx

xxx是想要回退的那個版本的commit id(版本號),其余三個情況也可以不使用HEAD,使commit id

兩種方法取到該版本號:

  • 只要上面的命令行窗口還沒有被關掉,你就可以順著往上找啊找啊

  • 使用git reflog查看命令歷史找到該版本號

撤銷修改

情況一:已修改,未暫存,回退到最近一次commit(修改看不見了)

git checkout -- xxx

xxx可以是“.”也可以是指定文件名,此操作其實就是丟棄對工作區的修改

情況二:已修改,已暫存,回退到最近一次add

git checkout -- xxx

xxx可以是“.”也可以是指定文件名,這種情況是git add后又做了修改,想要回退到add

情況三:已修改,已暫存,未提交,回退到工作區(修改保留在工作區)

git reset HEAD xxx

xxx可以是“.”也可以是指定文件名,此時可以使用git checkout丟棄對工作區的修改

情況四:已修改,已暫存,已提交,回退到上一個commit

git reset --hard HEAD^

從版本庫刪除文件

git rm xxx

xxx是文件名,命令git rm用于刪除一個文件。如果一個文件已經被提交到版本庫,那么你永遠不用擔心誤刪,但是要小心,你只能恢復文件到最新版本,你會丟失最近一次提交后你修改的內容

刪除文件

rm xxx

xxx是文件名,只是刪除本地

接下來有兩個選擇:

  • 確實要從版本庫中刪除該文件:git rm xxx -> git commit

  • 刪錯了恢復到最新版本:git checkout -- xxx

查看命令歷史

git reflog

關聯本地倉庫和遠程倉庫

情況一:先在本地創建了一個倉庫,然后在遠程也創建了一個倉庫,現在想要將他們關聯,也就是先有本地庫,然后有遠程庫

git remote add origin xxx

xxx是遠程倉庫地址,origin是遠程倉庫名字(默認)

情況二:先在遠程創建一個倉庫,然后從遠程庫克隆

從遠程庫克隆

git clone xxx

xxx是遠程倉庫地址

創建分支

情況一:從本地已存在的分支創建一個新的分支(相當于克隆當前本地分支)?

方法一:

git branch xxx?

xxx是分支名,這種方法創建的分支并不會切換分支,還是在當前分支

方法二:?

git checkout -b xxx

xxx是分支名,這種方法創建的分支會切換分支,在新創建的分支

情況二:從遠程已存在的分支創建一個新的分支(相當于克隆遠程分支到本地)

git checkout xxx1 -b xxx2

xxx1是遠程分支名,xxx2是本地分支名

假設一:該分支是我們自己在遠程庫創建的

xxx1和xxx2不同名:那么相當于我們在本地基于該遠程分支新創建了一個分支,之后提交操作都會提交到我們新創建的這個分支的遠程分支上

xxx1和xxx2同名:相當于我們在本地創建了該遠程分支的本地分支,并與之關聯,之后提交操作都會提交到該遠程分支上

假設二:該分支是其他人在遠程庫創建的(多人合作開發)

xxx1和xxx2不同名:那么相當于我們在本地基于該遠程分支新創建了一個“自己”的分支,只有我們自己用,提交不會有沖突

xxx1和xxx2同名:相當于我們在本地創建了該遠程分支的本地分支,并與之關聯,之后提交操作都會提交到該遠程分支上,因為大家都是從該分支創建的本地分支,然后提交,所以可能會出現沖突

切換分支

git checkout xxx

xxx是分支名

查看分支

情況一:查看本地分支

git branch

該命令會列出本地所有分支,當前分支前面會標一個*號

情況二:查看遠程分支?

git branch -r

該命令會列出遠程所有分支

合并分支?

情況一:快速合并(不會創建新的提交,分支合并圖中看不出來曾經做過合并)

git merge xxx

xxx是分支名,該命令會將xxx合并到當前分支

如果沒有沖突,執行該命令會提示?Fast-forward,Git告訴我們,這次合并是"快進模式",也就是直接把master指向dev的當前提交,所以合并速度非常快。當然,也不是每次合并都能Fast-forward

情況二:非快速合并(創建新的提交,分支合并圖中可以看出來曾經做過合并)

git merge --no-ff -m "merge with no-ff" xxx

xxx是分支名,該命令會將xxx合并到當前分支

--no-ff表示強制禁用Fast forward模式,因為本次合并要創建一個新的commit,所以加上-m參數,把commit描述寫進去。

刪除分支

情況一:分支已經被合并

git branch -d xxx

xxx是分支名

情況一:分支沒有被合并

git branch -D xxx

xxx是分支名,強制刪除分支

注意;刪除分支前要先切換到其他分支,在刪除想要刪除的分支

查看分支合并圖?

git log --graph?

?可以添加參數 --pertty=oneline和 --abbrev-commit?

推送分支

git push origin xxx

xxx是分支名,推送分支,就是把該分支上的所有本地提交推送到遠程庫。推送時,要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上,并不是一定要把本地分支往遠程推送?

抓取分支(就是創建分支的情況二)

git checkout -b branch-name origin/branch-name?

暫存工作現場

git stash

??我們知道分支的更改不提交是沒辦法切換分支的,但是現在我就是不想提交當前分支的修改切換分支,如何實現呢?就是使用該命令!!!,可以多次stash,恢復的時候,先用git stash list查看,然后恢復指定的stash

查看暫存內容

git stash list

?執行該命令可以查看暫存內容列表

恢復工作現場

情況一:恢復工作現場并刪除stash內容

git stash pop

情況一:恢復工作現場不刪除stash內容

git stash apply stash@{0}

stash@{0}是指定的stash,可選的

刪除暫存內容

git stash drop

復制特定提交到當前分支

git cherry-pick xxx

xxx是commit id,執行該命令Git自動給當前分支做一次提交,假如我們在a分支上做了修改并提交,我希望b分支上也有這次修改:

  • 獲取a分支此次修改提交的commit id

  • 切到b分支

  • 執行git cherry-pick commit id

案例:

$ git branch * devmaster $ git cherry-pick 4c805e2 [master 1d4b803] fix bug 1011 file changed, 1 insertion(+), 1 deletion(-)

Git自動給dev分支做了一次提交,注意這次提交的commit是1d4b803,它并不同于master的4c805e2,因為這兩個commit只是改動相同,但確實是兩個不同的commit。用git cherry-pick,我們就不需要在dev分支上手動再把修

bug的過程重復一遍。

查看遠程庫信息

git remote

執行該命令輸出 origin ,遠程倉庫的默認名稱是origin??梢蕴砑訁?-v 查看更加詳細的信息

git remote -v

執行該命令顯示可以抓取和推送的origin的地址。如果沒有推送權限,就看不到push的地址:

origin git@github.com:michaelliao/learngit.git (fetch)?

origin git@github.com:michaelliao/learngit.git (push)

建立本地分支和遠程分支的關聯

git branch --set-upstream branch-name origin/branch-name

拉取服務器最新代碼

情況一:當前本地分支和遠程分支已經關聯?

git pull

情況二:當前本地分支和遠程分支沒有關聯

方法一:直接拉取指定的遠程分支

git pull origin xxx?

方法二:先建立當前本地分支和遠程分支的關聯在拉取

git branch --set-upstream-to=branchname origin/branchname

再執行

git pull

創建標簽

情況一:給當前的版本創建標簽

git tag xxx

xxx是標簽的名字,eg:v1.0

情況二:給指定的版本創建標簽

git tag xxx1 xxx2

xxx1是標簽的名字,eg:v1.0,xxx2是commit id

情況三:創建帶有說明的標簽

git tag -a xxx1 -m "xxx2" xxx3

xxx1是標簽名,xxx2是說明,xxx3是commit id可選

查看標簽列表

git tag

?顯示標簽列表,標簽不是按時間順序列出,而是按字母排序的

查看標簽信息

git show xxx

xxx是標簽名

刪除標簽

情況一:刪除本地標簽?

git tag -d xxx

xxx是標簽名

情況一:刪除遠程標簽

1、先刪除本地標簽?

git tag -d xxx

2、再刪除遠程標簽

git push origin :refs/tags/xxx

xxx是標簽名

推送標簽

情況一:推送指定標簽到遠程

git push origin xxx?

xxx是標簽名

情況一:推送所有未推送的標簽到遠程

git push origin --tags

?

轉載于:https://www.cnblogs.com/kunmomo/p/11364799.html

總結

以上是生活随笔為你收集整理的Git复习(十一)之常见命令用法的全部內容,希望文章能夠幫你解決所遇到的問題。

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