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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

这些 git 高级命令你知道几个

發布時間:2023/12/29 windows 27 coder
生活随笔 收集整理的這篇文章主要介紹了 这些 git 高级命令你知道几个 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是 dom 哥。今天給大家分享幾個 git 的高級應用。

git 是目前最流行的版本控制工具。git 玩的 6 不 6,輕則影響自己的開發幸福指數 ??,重則影響下班時間 ??。本文介紹一些日常開發中常遇到的場景以及相關的 git 命令。

接下來就以前端流行的 mvvm 框架 vue 項目為例進行演示 ??。

查看 git log 統計信息 ??

誰才是真正的卷王?這個命令給你答案!

git shortlog -sn

左側是 commit 數量,右側是提交者 name

自定義 git log 輸出樣式 ??

這是素顏的 git log 樣子。一個 commit 獨占 7 行,一頁也展示不了幾個 commit 啊~

而且家人們誰懂啊,它這個日期格式把我看裂開了呀 Tue Dec 26 11:57:50 2023 +0800

先把日期格式調整的舒服一些:

git config --global log.date format:"%Y-%m-%d %X"

設置完之后日期格式是這樣紙滴 2023-12-26 11:57:50

再來一串魔法設置 git log 輸出的信息格式:

git config --global format.pretty "%C(auto)%h %s %C(italic dim white)%cn<%ce>[%cd]%Creset%C(auto)%d%Creset%n"

這是化妝后 git log 的樣子。一行一個 commit,簡直不要太清爽~

偷偷撤銷提交記錄的某次 commit ??

常在河邊走,哪有不濕鞋。誰還沒有提交過一個不該提交的 commit 呢,還 push 到遠端了,怎么辦?怎么辦?

git reset ?這會把某個 commit 之后的提交全干掉啊,不行,不行??

用下面這個命令,就可以悄無聲息的把某個 commit 摘掉了????

git rebase -i --onto commit-ish^ commit-ish

但事情沒那么簡單。此時只是本地的提交記錄被糾正了,遠端的還沒改變呢。你需要 git push!然而在 rebase 之后 git push,一定會被 reject,會報類似下面的錯誤信息

千萬別 git pull 哦!!!因為此時當前分支的本地和遠端已經產生了分歧,接下來就是決定誰覆蓋誰的時刻。

如果 git pull,那就是遠端覆蓋本地,上面的 rebase 操作白干!

如果想本地覆蓋遠端,只能 git push --force,加上 --force 強推到遠端!推上去遠端提交記錄就和本地一樣啦。

但是,實際操作起來肯定不會很順利,可能有一長串的 commit 需要確認,可能會出現大量的沖突文件,可能需要其他協作者刪掉本地的分支重新遷出。

刪除遠程分支 ??

刪除有風險,操作需謹慎。千萬別手抖!

git push -d origin <branch>

批量刪除本地分支和遠端分支

git branch | grep 'dombro_' | xargs git push -d origin
git branch | grep 'dombro_' | xargs git branch -d

當前分支名稱 ??

git rev-parse --abbrev-ref HEAD

這通常在 shell 腳本里會用到!

清理已刪除的本地遠程引用 ???

git fetch -p

為什么要清理?我也不曉得??

查看一個文件都哪些人編輯過 ??

git log --pretty=format:"%an" <file> | sort -u

為什么要看這個,就是想看看??

查看某個文件每一行都是誰寫的 ??

git blame --date=format:"[%Y-%m-%d %X]" <file>

這個太重要啦,bug來了想把鍋甩出去,得第一時間找到 TMD 這行代碼誰寫的。

但,正經人誰在命令行里看 blame 啊,這里就不得不推薦一個 vscode 插件 GitLens:

有了它,在 vscode 里 blame 簡直不要太方便,再也不用愁找這行代碼到底誰寫的啦

某個文件沖突太多,想直接用線上的 ??

git pull # 先拉最新的代碼
git checkout origin/master -- <file>

話說你用的 git 沖突解決工具是什么?我先說 ???♂?,webstorm 自帶的 git 工具,比 vscode 的好用多了。

什么!把 .vscode,.idea,.DS_Store 推送上去了!??

git rm --cached -r .vscode/ .idea/ .DS_Store/

別忘了 remove 完之后 commit 哦~

給當前項目單獨設置 user name 和 email ??

git config user.name <name>
git config user.email <email>

可能我想在 github 上的項目的提交者信息是 DOM哥<dombro@qq.com>,但公司內的項目用 姓名<公司@郵箱.com> 會比較好一點。

git config 設置完之后信息會存在項目根目錄 .git/config 中,跟隨項目。實現不同項目的提交者信息各不相同 ??。

總結

以上是生活随笔為你收集整理的这些 git 高级命令你知道几个的全部內容,希望文章能夠幫你解決所遇到的問題。

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