溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Git使用的小技巧有哪些

發(fā)布時間:2022-02-19 11:14:57 來源:億速云 閱讀:159 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“Git使用的小技巧有哪些”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Git使用的小技巧有哪些”這篇文章吧。

在日常工作中,經(jīng)常會用到Git操作。但是對于新人來講,剛上來對Git很陌生,操作起來也很懵逼。

Git使用的小技巧有哪些

一、Configuration:配置

列舉所有的別名與配置

git config --list

Git 別名配置

git config --global alias.  git config --global alias.st status

設(shè)置git為大小寫敏感

git config --global core.ignorecase false

二、Help:常用的輔助查詢命令

在git 命令行里查看everyday git

git help everyday

顯示git常用的幫助命令

git help -g

獲取Git Bash的自動補全

~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc

設(shè)置自動更正

git config --global help.autocorrect 1

三、Remote:遠端倉庫配置

獲取所有遠端引用配置

git remote

或者

git remote show

修改某個遠端的地址

git remote set-url origin URL

Repo

查看當前倉庫中的所有未打包的objects和磁盤占用

git count-objects --human-readable

從object數(shù)據(jù)庫中刪除所有不可達的object

git gc --prune=now --aggressive

四、文件類操作 ,Cache:緩存,Track:文件追蹤,

展示所有被追蹤的文件

git ls-files -t

展示所有未被追蹤的分支

git ls-files --others

展示所有被忽略的文件

git ls-files --others -i --exclude-standard
git check-ignore*
git status --ignored

Manipulation:操作

停止追蹤某個文件但是不刪除它

git rm --cached

或者

git rm --cached -r

強制刪除未被追蹤的文件或者目錄

git clean -f

git clean -f -d
git clean -df

清空.gitignore

git clean -X -f

Changes:修改

Info:信息查看

查看上次提交之后的未暫存文件

git diff

查看準備用于提交的暫存了的修改的文件

git diff --cached

顯示所有暫存與未暫存的文件

git diff HEAD

查看最新的文件版本與Stage中區(qū)別

git diff --staged

dd:追蹤某個修改,準備提交

Stage某個文件的部分修改而不是全部

git add -p

Reset:修改重置

以HEAD中的最新的內(nèi)容覆蓋某個本地文件的修改

git checkout --

Stash:貯存

Info:信息查看

展示所有保存的Stashes

git stash list

Manipulation:操作

Save:保存

保存當前追蹤的文件修改狀態(tài)而不提交,并使得工作空間恢復(fù)干凈

git stash

或者

git stash save

保存所有文件修改,包括未追蹤的文件

git stash save -u

或者

git stash save --include-untracked

Apply:應(yīng)用

應(yīng)用任何的Stash而不從Stash列表中刪除

git stash apply

應(yīng)用并且刪除Stash列表中的最后一個

git stash pop

或者

git stash apply stash@{0} && git stash drop stash@{0}

刪除全部存儲的Stashes

git stash clear

或者

git stash drop

從某個Stash中應(yīng)用單個文件

git checkout  --

或者

git checkout stash@{0} --

Commit:提交

檢索某個提交的Hash值

git rev-list --reverse HEAD | head -1

Info:信息查看

List:Commit列表

查看自Fork Master以來的全部提交

git log --no-merges --stat --reverse master..

展示當前分支中所有尚未合并到Master中的提交

git cherry -v master

或者

git cherry -v master

可視化地查看整個Version樹

git log --pretty=oneline --graph --decorate --all

或者

gitk -all

查看所有在分支1而不在分支2中的提交

git log Branch2 ^Branch3

Files:文件信息

展示直到某次提交的全部文件列表

git ls-tree --name-only -r

展示所有在某次提交中修改的文件

git diff-tree --no-commit-id --name-only -r

展示所有對于某個文件的提交修改

git log --follow -p --

Manipulation:關(guān)于提交的操作

Apply:Commit確認或者應(yīng)用

利用cherry-pick將某個分支的某個提交跨分支的應(yīng)用到其他分支

git checkout  && git cherry-pick

提交時候忽略Staging區(qū)域

git commit -am

提交時候忽略某個文件

git update-index --assume-unchanged Changelog;

git commit -a;

git update-index --no-assume-unchanged Changelog

撤銷某個故意忽略

git update-index --no-assume-unchanged

將某個提交標記為對之前某個提交的Fixup

git commit --fixup

Reset:將當前分支的HEAD重置到某個提交時候的狀態(tài)

重置HEAD到第一次提交

git update-ref -d HEAD

丟棄自某個Commit之后的提交,建議只在私有分支上進行操作。注意,和上一個操作一樣,重置不會修改當前的文件狀態(tài),Git會自動將當前文件與該Commit時候的改變作為Changes列舉出來

git reset

Undo&Revert:撤銷與恢復(fù)某個Commit

以創(chuàng)建一個新提交的方式撤銷某個提交的操作

git revert

恢復(fù)某個文件到某個Commit時候的狀態(tài)

git checkout  --

Update:修改某個Commit

修改上一個提交的信息

git commit -v --amend

修改提交的作者信息

git commit --amend --author='Author Name '

在全局的配置改變了之后,修改某個作者信息

git commit --amend --reset-author --no-edit

修改前一個Commit的提交內(nèi)容但是不修改提交信息

git add --all && git commit --amend --no-edit

Branch:分支

Info:信息查看

獲取當前分支名

git rev-parse --abbrev-ref HEAD

Tag

列舉當前分支上最常用的標簽

git describe --tags --abbrev=0

List:分支枚舉

獲取所有本地與遠程的分支

git branch -a

只展示遠程分支

git branch -r

根據(jù)某個Commit的Hash來查找所有關(guān)聯(lián)分支

git branch -a --contains 或者

git branch --contains

Changes:某個分支上的修改情況查看

查看兩周以來的所有修改

git log --no-merges --raw --since='2 weeks ago'或者

git whatchanged --since='2 weeks ago'

Merger:合并情況查看

追蹤某個分支的上游分支

git branch -u origin/mybranch

列舉出所有的分支以及它們的上游和最后一次提交

git branch -vv

列舉出所有已經(jīng)合并進入Master的分支

git branch --merged master

Manipulation:操作

Checkout:檢出與分支切換

快速切換到上一個分支

git checkout -

不帶歷史記錄的檢出某個分支

git checkout --orphan

Remove:分支移除

刪除本地分支

git branch -d

刪除遠程分支

git push origin --delete 或者

git push origin :

移除所有已經(jīng)合并進入Master的分支

git branch --merged master | grep -v '^/*' | xargs -n 1 git branch -d

移除所有在遠端已經(jīng)被刪除的遠程分支

git fetch -p

或者

git remote prune origin

Update:信息更新

修改當前分支名

git branch -m 或者

git branch -m []

rchive:打包

將Master分支打包

git archive master --format=zip --output=master.zip

將歷史記錄包括分支內(nèi)容打包到一個文件中

git bundle create

從某個Bundle中導(dǎo)入

git clone repo.bundle  -b

Merge:合并

Pull&Push:遠程分支合并操作

用pull覆蓋本地內(nèi)容

git fetch --all && git reset --hard origin/master

根據(jù)Pull的ID拉取某個Pull請求到本地分支

git fetch origin pull//head:

或者

git pull origin pull//head:

Rebase:變基

在Pull時候強制用變基進行操作

git config --global branch.autosetuprebase always

將某個feature分支變基到master,然后合并進master

git checkout feature && git rebase @{-1} && git checkout @{-2} && git merge @{-1}

變基之前自動Stash所有改變

git rebase --autostash

利用變基自動將fixup提交與正常提交合并

git rebase -i --autosquash

利用ReBase將前兩個提交合并

git rebase --interactive HEAD~2

Diff&Conflict:差異與沖突

Info:信息查看

列舉全部的沖突文件

git diff --name-only --diff-filter=U

在編輯器中打開所有沖突文件

git diff --name-only | uniq | xargs $EDITOR

Workflow:工作流

SubModules:子模塊

Info:信息查看

Manipulation:操作

利用SubTree方式將某個Project添加到Repo中

git subtree add --prefix=/ --squash git@github.com:/.git master

更新所有的子模塊

git submodule foreach git pull

Work Tree

Manipulation:操作

從某個倉庫中創(chuàng)建一個新的Working Tree

git worktree add -b

從HEAD狀態(tài)中創(chuàng)建一個新的Working Tree

git worktree add --detach  HEAD


以上是“Git使用的小技巧有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

git
AI