中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Git有哪些實用技巧

發布時間:2021-10-28 17:29:46 來源:億速云 閱讀:132 作者:iii 欄目:web開發

本篇內容主要講解“Git有哪些實用技巧”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Git有哪些實用技巧”吧!

將幾個commit壓縮成一個

Git有哪些實用技巧

?? 這里有一點要特別注意的是:rebase會導致新的commit節點產生,所以切記不要對多人共用的遠端分支進行rebase。

rebase -i 是個很實用且應用廣泛的工具,希望大家都學會它的使用。它還可以用來修改commit信息,拋棄某些commit,對commit進行排序等等。具體命令如下,操作方式跟動圖一致,都是在vim里面進行編輯。這里不展開,感興趣的同學可以自己操作一下。

# Commands: # p, pick <commit> = use commit # r, reword <commit> = use commit, but edit the commit message # e, edit <commit> = use commit, but stop for amending # s, squash <commit> = use commit, but meld into previous commit # f, fixup <commit> = like "squash", but discard this commit's log message # x, exec <command> = run command (the rest of the line) using shell # d, drop <commit> = remove commit # l, label <label> = label current HEAD with a name # t, reset <label> = reset HEAD to a label # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>] # .       create a merge commit using the original merge commit's # .       message (or the oneline, if no original merge commit was # .       specified). Use -c <commit> to reword the commit message.

另外如果要合并的是最近的幾個commit,我們還可以用git reset --soft HEAD~3 && git commit -m 'xxx'來實現。對這個有問題的同學可以參照Git內部原理強調的可視化方法思考一下。

找回丟失的commit節點或分支

像上一步rebase后發現不符合預期,如何恢復?不小心刪除了一個分支,如何找回?

“學會這個技能,你的同事會請你喝奶茶的,而且說不定還能收獲妹子。” &mdash;&mdash; 來自往期課程的某位同學

Git有哪些實用技巧

主要思路為:找到要返回的commit object的哈希值,然后執行git reset恢復

我們知道Git的出現就是為了盡量保證我們的操作不被丟失,在Git內部原理中我們講過,git object一旦被創建,就不可變更,所以只要找到它對應的哈希值,就能找回。但是ref呢?在Git內部原理中我們也講過,它是一個可變的指針,比如說你在master中提交了一個commit,那當前的master這個ref就會指向新的commit object的哈希值。reflog 就是將這些可變指針的歷史給記錄下來,可以理解成 ref的log,也可以理解成 版本控制的版本控制

獲得一個干凈的工作空間

當我們實驗一種思路,或者跟朋友講代碼時,我們可能會隨意的修改代碼。而當我們回到正常的開發時,我們需要一個干凈的工作目錄,即保證目前工作目錄跟Git最后一次commit的文件是一致的。我們可以怎么做?

Git有哪些實用技巧

盡量少用會丟失文件的操作,除非你能夠確定不再需要這些文件。

修改最近一個commit

commit完發現有一些臨時的log忘記去掉?有一些文件忘記添加?commit信息出現錯別字?

Git有哪些實用技巧

也可以使用 git reset HEAD~,然后執行你需要的修改,再commit即可,同上面介紹的命令效果是相同的。

提交一個文件中的部分修改

Git有哪些實用技巧

Git interactive add 還有很多功能,也推薦大家有時間可以嘗試一下。

禁止修改多人共用的遠端分支

如果一條遠端分支有多人共用,那么不要在上面執行reset、rebase等會修改這條分支已經存在的commit object的命令。

Git有哪些實用技巧

具體的解釋參照這篇文章 Rebase and the golden rule explained 。

撤銷一個合并

如果是一個本地分支,僅需git reset --hard <合并前的SHA1>即可。

如果這個分支已經被推送到遠端,比如說合并進master,發到線上才發現有bug需要回滾。這時分支有可能已經被其他人所使用,根據“禁止修改多人共用的遠端分支”,你需要執行git revert -m 1 <合并的SHA1>,新增一個revert節點,如下圖中的E'。

Git有哪些實用技巧

但要注意不要在原特性分支繼續開發,而應該刪除原來的分支,從E'節點拉出新分支做bug修復等。

如果在原特性分支上繼續開發,則在合并回master的時候需要做一次revert操作revert掉E'節點,變成E&lsquo;&rsquo;(如下圖),不然很容易出現丟失文件等問題。具體原因分析參照分支合并中的總結。

Git有哪些實用技巧

從整個歷史中刪除一個文件

代碼要開源了,但發現其中包括密鑰文件或內網ip怎么辦?

git filter-branch --tree-filter 'rm -f passwords.txt' HEAD

可以使用filter-branch命令,它的實現原理是將每個commit checkout出來,然后執行你給它的命令,像上面的rm -f passwords.txt,然后重新commit回去。

?? 這個操作屬于高危操作,會修改歷史變更記錄鏈,產生全新的commit object。所以執行前請通知倉庫的所有開發者,執行后所有開發者從新的分支繼續開發,棄用以前的所有分支。

其他好用的命令

下面這些命令也是比較實用的命令,感興趣的同學可以自己學習一下。

  • git bisect 二分查找出現問題的變更節點,比如你發現當前提前下測試是不通過的,但HEAD~10(10個提交前)的測試是可以通過的,就可以用git bisect 來幫你定位到出現問題的變更點。

  • git blame 查看某行代碼最后是誰修改的。

  • git show-branch 直觀的展示多條分支間的關系。

  • git subtree 拆分或合并倉庫。

到此,相信大家對“Git有哪些實用技巧”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

git
AI

保康县| 抚松县| 古浪县| 精河县| 永仁县| 九寨沟县| 汝城县| 锦州市| 修文县| 巩义市| 买车| 佛坪县| 双鸭山市| 越西县| 渭源县| 庆元县| 锦屏县| 博乐市| 南郑县| 内丘县| 招远市| 广东省| 同德县| 南皮县| 时尚| 万源市| 枣阳市| 灌南县| 墨江| 宜宾县| 阜宁县| 峨眉山市| 商丘市| 姜堰市| 尉犁县| 大悟县| 苗栗市| 灯塔市| 乳山市| 呼图壁县| 民县|