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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Git使用中的一些奇技淫巧

發布時間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git使用中的一些奇技淫巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自? ?Git使用中的一些奇技淫巧

Git作為當今最流行的分布式代碼版本管理系統,它的出現改變了軟件的開發流程,大大地提高了開發流暢度。

本人使用Git也有一段時間了,一直都只是使用一些最最基本的幾個命令,對于不復雜的代碼工程來說,我覺得已經夠用了。

命令別名

平時不太用GUI,都是在IDEA中直接敲命令進行相關操作,覺得命令行相對于GUI來說效率還是要高一些,一開始老老實實的敲完整的命令,比如

1、git checkout dev 2、git status 3、git commit -m '某次提交'

后來才發現,Git有別名這一功能,通過下面幾個命令可以把比較長的命令使用簡短兩個字母代替。

$ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch $ git config --global alias.st status

然后就可以愉快的敲 git st 來查看當前狀態了,除了這種簡單的替換,還可以進行復雜的替換,比如要顯示一個牛逼的提交記錄,可以把lg替換成很長的一段命令組合,如下:

$ git config --global alias.lg log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

大家可以感受一下,這是原生的 git log

下面是 git lg,是不是高大上了很多,還有很多組合命令可以去挖掘

如何放棄本地修改

這個功能平時用的還是比較多的,經常功能加了之后發現并沒什么卵用,需要放棄這些修改,不過這也分為好幾種情況。

1、未進行add操作

這種情況,應該是最常見的,一般修改不會輕易進行 git add<file>操作,這個時候只需要進行簡單的 git co--. 全部或者 git co--<file> 恢復具體的文件。

命令中的--很重要,沒有--,就可能變成 "分支切換" 的命令,但是如果沒寫--,且沒有對應的分支,也可以恢復,為了保險,還是老老實實加上。

該命令就是用來放棄那些還未加入緩存區的修改操作,包括文件內容的修改和文件的刪除,但是對于那些新建的文件來說,并不把它刪掉,因為剛新建的文件對于Git來說是未知的,需要手動的刪除。

2、已經被add進緩存

好吧,這種情況,我也是經常遇到,因為手速太快,執行完 git add. 之后,發現一些有問題,怎么辦?

因為這些修改已經被放入緩存區了, git co 操作已經無力回天,這個時候,可以使用 git reset HEAD<file> 命令來放棄指定的文件的緩存,如果要放棄所有修改的緩存,可以使用 git reset HEAD.

該命令相當于撤銷 git add 的影響,在執行該命令后,本地的修改并不會消失,而是回到add之前的狀態。

3、add完之后,還commit了

這種情況最糟心,還好沒有push到遠程倉庫,還可以搶救。其實方法也很簡單,可以使用 git reset--hard HEAD^ 來回退到上一次commit的狀態。

另外使用此命令可以回退到任意版本: git reset--hard commitid這里的commitId就是使用 git log 顯示的提交歷史中的SHA碼,只需要前面幾位即可。

如何合并分支

通常我們會在一個新建分支進行相關功能的開發,比如執行 git co-br dev 創建一個dev分支進行開發。

一個功能迭代開發了一周,測試通過之后,需要合并回mater分支,這個時候master分支可能已經合并了一些其他小伙伴的代碼,這個時候的Git可能下面這個情況

下面是SourceTree上的顯示結構

需要把dev分支的代碼合并到master上,可以有兩種方法

git merge dev git rebase dev

如果是執行 git merge dev ,效果如下

merge命令會留下dev分支,卻在合并的地方多了一個merge節點。

如果是執行 git rebase dev-0,會發生什么?我們再試試

因為測試,重新創建了dev-0分支,通過rebase的合并,發現dev-0的commit信息很自然被整合到了mater分支中,好像dev-0分支從來沒有存在過一樣,整個分支也很干凈。

刪除遠程分支

有時候可能一不小心,把本地的開發分支會push到了遠程倉庫,雖然沒什么大礙,對應有分支潔癖的同學可能不能接受,怎么辦,刪除之。

對于本地分支,可以痛快的執行 git br-d dev 命令進行刪除,遠程分支就沒這個簡單了,不過命令還是有的,只是不太好記。

git push origin :<branch-name>

推送一個空分支到遠程分支,相當于刪除了遠程分支,在v1.7.0 之后,可以使用下面這種語法進行刪除

// 1.7.0之后 git push origin --delete <branch-name >

tag相關

一般在發布一個版本的時候,會打一個對應的版本號。

git tag 1.1.8

那么,tag有什么好處?

比如,目前組件已經迭代到了版本2.0.5,業務卻拿著1.1.8的版本,咨詢哪哪哪有問題,這個時候就可以快速的執行 git co1.1.8 命令定位到1.1.8版本發布時的代碼,并進行相關問題的查看。

其它的一些技巧

1、git add -p之前在執行 git add時,可能把并不想提交的一些修改(測試邏輯)給add到緩存了,如果添加了 -p ,可以一步一步顯示變更的內容,并進行選擇緩存。

如果輸入n,并回車,就可以放棄當前塊的修改。

其它一些高級技能,平時也沒怎么用過,如果有其它的一些技巧,歡迎推薦。

最后

獻上一張圖,已經忘記當時是哪里找到的




總結

以上是生活随笔為你收集整理的Git使用中的一些奇技淫巧的全部內容,希望文章能夠幫你解決所遇到的問題。

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