柚子快報激活碼778899分享:git用法總結(jié)
柚子快報激活碼778899分享:git用法總結(jié)
這里寫目錄標題
git stashgit addgit commitgit branchgit checkout暫存區(qū)的一些操作移動提交記錄git merge/rebasegit submodulegit resetgit revertgit pushgit pull
git的基本操作可以用下面的圖來表示
git stash
當(dāng)前工作區(qū)有修改,但是需要切換到其它分支做事情,可以用git棧先存起來,否則checkout時會丟失非暫存區(qū)內(nèi)的內(nèi)容,等切換回來后再拿出來,git棧是全局的
git stash
git stash save "your message" //添加說明
git stash list
git stash pop //將最新存儲的修改應(yīng)用到當(dāng)前工作目錄,并從棧中刪除
git stash pop stash@{n} //將指定的存儲修改應(yīng)用到當(dāng)前工作目錄,并從棧中刪除
git stash apply stash@{n} //將指定的存儲修改應(yīng)用到當(dāng)前工作目錄
git add
添加文件到暫存區(qū)
git add . //添加當(dāng)前目錄下所有被修改的文件到暫存區(qū)
git add
git add
git commit
把暫存區(qū)的內(nèi)容提交到本地倉庫,然后清空暫存區(qū)用于下一次的提交
git commit -m "本次提交的相關(guān)信息"
git branch
git branch //顯示所有本地分支
git branch branch-name //創(chuàng)建一個新分支
git branch -d branch-name //刪除本地分支
git branch -m new-branch-name //重命名本地分支
git branch -m
git branch -r //查看遠程所有分支
git checkout
git checkout branch-name //切換到現(xiàn)有分支
git checkout . //放棄工作區(qū)中的修改
暫存區(qū)的一些操作
git status:查看當(dāng)前工作區(qū)和暫存區(qū)的狀態(tài),包括已修改但未添加到暫存區(qū)的文件,已暫存但未提交的文件,以及沒有任何更改的文件git diff --cached:查看已經(jīng)添加到暫存區(qū)但尚未提交的文件的具體變更內(nèi)容git reset HEAD file:從暫存區(qū)移除文件,但仍保留工作目錄中的文件git reset:完全清空暫存區(qū),同樣不影響工作目錄
移動提交記錄
1.HEAD HEAD 是一個對當(dāng)前所在分支的符號引用 —— 也就是指向正在其基礎(chǔ)上進行工作的提交記錄,用git checkout哈希值可以分離HEAD去指向某一提交記錄 2.git log 查看分支上所有提交記錄的的哈希值 3.相對引用
^:向上移動一個提交記錄,git checkout main^
~num:向上移動num個提交記錄,git checkout HEAD ~2
4.強制修改分支位置 用-f結(jié)合相對引用可以讓分支指向另一個提交
git branch -f main HEAD ~3 //強制將分支指向HEAD的第三級parent提交
git merge/rebase
功能上來看都是進行分支的合并,merge會保留原來的分支結(jié)構(gòu)并產(chǎn)生一個新的提交記錄,rebase是進行變基,把一個分支的提交在處理沖突后移到另一個基點上,但是注意rebase之前先把本地所做修改提交了,否則會丟失參考
當(dāng)前分支為main
git merge develop //把develop分支合并到當(dāng)前分支
git rebase develop //把當(dāng)前分支變基到develop分支,變基后還是在main分支上,但現(xiàn)在的main分支是基于develop分支上的,相當(dāng)于main分支做了更新
git submodule
項目中有子模塊的時候記得每次pull的時候也要
git reset
1.軟重置(參考) 只重置 HEAD 指針到指定提交,保留暫存區(qū)和工作目錄的更改
git reset --soft
git reset --soft HEAD~1
2.混合重置 重置 HEAD 和暫存區(qū)到指定提交,保留工作目錄的更改
git reset --mixed
3.硬重置
git reset --hard
git revert
它可以撤銷先前的提交并創(chuàng)建一個新的提交來還原更改,這個新的提交會撤銷指定提交所做的更改
git push
本地倉庫到遠程倉庫推送
git push //將當(dāng)前分支的所有提交推送到遠程倉庫,通常是默認推送到與本地分支同名的遠程分支
git push origin feature-branch //指定具體的本地分支和遠程分支來進行推送,這里將本地的 feature-branch 分支推送到遠程倉庫 origin 的 feature-branch 分支
git push -u origin
git push origin HEAD //將當(dāng)前分支的所有提交推送到遠程倉庫origin的對應(yīng)分支,如果遠程不存在會自動創(chuàng)建
git pull
拉取并合并遠程倉庫的當(dāng)前分支的更改到本地當(dāng)前分支,等同于fetch+merge,pull之前先commit,不然會丟失
git fetch //只從遠程倉庫拉取更新,但不合并到本地分支
git merge //合并到本地分支
git pull
git checkout -b 本地分支名 origin/遠程分支名 //拉取某一分支
git config pull.rebase true //git pull的時候遠端分支數(shù)多余本地,這種方式可以確保提交被重新應(yīng)用在最新的遠程更改之上,保持提交歷史的整潔
柚子快報激活碼778899分享:git用法總結(jié)
推薦文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。