精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Git 12 歲了,送給你 12 個 Git 使用技巧!

系統 Linux
在4月7號12歲了。但是使用Git中更另人沮喪的是,你需要了解多少才能讓你更有效的使用它。同時這也是使用Git中比較美妙的一件事,因為沒有什么比發現一個新的小技巧來簡化或提高你的工作流的效率更加令人快樂了。

使用這12個Git的訣竅與技巧來令你的版本控制經驗更加有用。

Git,一個分布式版本控制系統,它已經成為了開源世界的源碼控制默認工具,在4月7號12歲了。但是使用Git中更另人沮喪的是,你需要了解多少才能讓你更有效的使用它。同時這也是使用Git中比較美妙的一件事,因為沒有什么比發現一個新的小技巧來簡化或提高你的工作流的效率更加令人快樂了。

為了紀念Git的12歲生日,這篇文章提供12個訣竅與技巧來讓你的Git經驗更加有用和強大,從一些你可能會忽視的基礎開始到一些真正的強大技巧!

1. 你的 ~/.gitconfig 文件

在***次用git命令來提交一個倉庫的修改,你可能會首先看到像下面這種內容:

  1. *** Please tell me who you are. 
  2. Run 
  3.   git config --global user.email "you@example.com" 
  4.   git config --global user.name "Your Name" 
  5. to set your account's default identity. 

你可能還沒有意識到那些命令正在修改~/.gitconfig文件的內容,這個文件就是Git存儲全局配置選項的文件。通過你的~/.gitconfig文件你可要做很多事情,包括定義別名,***的打開(或關閉)一些特定的命令選項,還可以修改Git如何工作的方面(例如:git diff使用哪個diff算法,或者默認使用什么類型的的合并策略)。你甚至可以按條件地基于路徑包含其他配置文件到一個倉庫!使用“man git-config”查看所有細節。

2. 你的倉庫的.gitconfig文件

在之前的技巧中,你可能會想知道在git config 命令中的—global標識是做什么的。它告訴Git更新“global”配置,也就是~/.gitconfig發現的這個配置。當然,擁有一個全局的配置代表了一個本地配置,而且足夠肯定的是,如果你省略—global選項,git config 會更新這個倉庫自己的配置,這個配置文件存儲在.git/config。

在.git/config中設置的選項會推翻在~/.gitconfig文件中的對應設置。因此,例如,如果你需要在一個特定的倉庫中使用一個不同的郵箱地址,你可以運行“git config user.email "also_you@example.com"”。然后,你在這個倉庫中提交會使用你單獨配置的這個郵箱地址。如果你使用一個工作的電腦在開源項目中工作,但是希望在這個項目中使用個人的郵箱地址,而其他在主Git配置中仍然使用工作郵箱,這一點是非常有用的。

在~/.gitconfig中可以設置的任何東西,都可以在.git/config中設置來對這個倉庫做特定設置。在下面的這些技巧中,當我提到在你的~/.gitconfig文件中添加什么東西,同時也說明可以在特定的倉庫的.git/config中添加來設置那個選項。

3、別名

別名是你可以在你的~/.gitconfig文件里做的另外一件事。他的工作原理就像shell命令行里的別名——設置一個新的命令名稱來調用一個或者多個其他的命令,這些命令通常包括一些特定的選項或標識。別名對于你經常使用的那些又長又復雜的命令行是非常有效的。

你可以使用git config命令來定義別名——例如,執行”git config —global —add alias.st status”命令后,會使得執行git st與執行git status做的是同樣的事情——然而,我發現當定義別名的時候,只需要直接在~/.gitconfig文件里編輯通常會更加容易。

如果你選擇這么做,你會發現~/.gitconfig文件就是一個INI文件,INI是一種帶有特定段落的基礎鍵值對文件格式。添加一個別名時,你將改變[alias]段落。例如:上面提到的定義相同的git st別名,需要添加下面這段代碼:

  1. [alias] 
  2. st = status 

(如果已經有了[alias]這個段落,只需要在這個段落中添加到第二行)

4. shell命令中的別名

別名不僅僅是運行其他Git子命令——你也可以定義別名,這些別名可以運行其他shell命令。這是一個很好的方法來處理一個重復的、罕見的、復雜的任務:一旦你已經想到***次怎么做,那就使用一個別名保存這個命令。例如,我有幾個倉庫是我fork了一個開源項目,而且在本地做了一些修改,這些修改不用貢獻給這個項目。在項目的持續的開發的過程中我想保持***的版本,同時保留我的本地修改。為了完成這個想法,我需要定期地從upstream倉庫中合并這些修改到我的fork——我定義一個別名“upstream-merge”來完成這個操作。定義如下:

  1. upstream-merge = !"git fetch origin -v && git fetch upstream -v && git merge upstream/master && git push" 

別名定義開始的這個“!”是告訴Git來通過shell運行這個命令。這個例子包括了運行一些git命令,但是使用這種方式定義別名可以運行任何shell命令。

(注意:如果你想復制我的upstream-merge別名,你將需要確認你有一個Git remote命名為upstream來指定這個你fork的upstream倉庫。你可以通過“git remote add upstream ”來添加一個。)

5. 可視化提交圖

如果你從事的是一個有很多分支活動的項目,有時可能很難掌握所有正在發生的工作以及它們之間的相關性。各種GUI工具可讓你弄清楚不同分支的概況以及在所謂的“提交圖”中提交記錄。例如,以下是我使用 GitLab 提交圖查看器進行可視化的一個存儲卡的部分截圖:

John Anderson, CC BY

如果你是專注于命令行的用戶,就可以不在多個工具之間切換導致分心,這個工具在命令行上實現了類似圖形界面的提交視圖。通過 -- graph 參數獲取 git 的記錄: 

John Anderson, CC BY

下面的命令可以得到一樣的倉庫可視化片段:

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

--graph 選項將圖表添加到日志的左側, --abbrev-commit 存儲提交使用了 SHA 方法, --date=relative 表達式用相對的術語來表示日期,并且 --pretty 以 bit 格式處理自定義格式。我知道 git lg 的別名,它是我最常運行的10個命令之一。

6. 更優雅的強制推送(force-push)

有時,就跟你盡量避免使用它一樣困難的是,你會發現你需要運行 git push --force 來覆寫你倉庫的遠程副本上的歷史記錄。你可能已得到了一些反饋,他們會要求你進行交互式的變基(rebase),或者你可能已經搞砸了,并且希望隱藏證據。

當他人在倉庫的遠程副本的同一分支上進行改動后,會發生強制推送的風險。當你強制推送已重寫的歷史記錄時,某些提交將會丟失。這是 git push --force-with-lease 出現的原因 - 如果遠程分支已更新,它不會允許你執行強制推送,這將確保你不會丟棄他人的工作。

7. git add -N

你是否使用過git commit -a在一次行動中提交你所有未完成的修改,只有在你push完你的提交后才發現git commit -a忽略了新添加的文件?解決這個問題你可以用git add -N(“通知”)來告訴Git你想把新添加的文件包含在提交中在你***次實際提交之前。

8. git add -p

一***的實踐為當使用Git時確保每個提交只包含一個邏輯更改--不管是修復一個bug還是(實現)一個新功能。然而, 有時當你工作 ,會在你的倉庫中出現一個以上的修改 提交 。你怎么樣把事情分開,使每個提交只包含適當的修改呢?git add --patch來解救!

這個標志將會使git add命令查看你工作副本中所有的變更,詢問你是否愿意將它提交,跳過,或者推遲決定(還有其他一些更強大的選項,你可以通過在運行這命令后選擇?來查看)。git add -p是一個神奇的工具來生產結構良好的提交。

9. git checkout -p

與 git add -p類似,git checkout命令將使用 --patch 或 -p 選項,這會使 git 在本地工作副本中展示每個“大塊”的改動,并允許丟棄對應改動 —— 簡單地說就是恢復本地工作副本到你改變之前的狀態。

某些場景下這非常有用,例如,在你跟蹤一個 bug 時引入了一堆調試日志語句,在修正了這個 bug 之后,你可以先使用 git checkout -p 刪除所有新加的調試日志,之后使用 git add -p 來添加 bug 修復。沒有比組合一個極好的、結構良好的提交更令人滿意的了

10. Rebase with command execution

有些項目有一條規則,即存儲庫中的每個提交都必須處于可工作狀態 - 也就是說,在每次提交時,代碼應該是可編譯的,或運行測試套件應該不會失敗的。當你在某分支上工作時間長時,但如果你最終因為某種原因需要rebase時,那么跳過每個變基后的提交以確保你沒有意外引入一個中斷是有些冗長乏味的。

幸運的是,git rebase已經支持了-x或--exec選項。git rebase -x 將在每次提交應用到rebase后運行該命令。因此,例如,如果你有一個項目,其中npm run tests會運行你的測試套件,那么在rebase期間應用每次提交后,git rebase -x npm run tests將會運行測試套件。這使你可以查看測試套件是否在任何變基后的提交中有失敗情況,因此你可以確保測試套件在每次提交時仍能通過。

11. 基于時間修改的指南

很多Git子命令都接受一個修正的參數來決定命令作用于倉庫的哪個部分,可能是某次特定的提交的 sha1 值,或者一個分支的名稱,又或者是一個符號性的名稱如 HEAD(代表當前檢出分支***一次的提交),除了這些簡單的形式以外,你還可以附加一個指定的日期或時間作為參數,表示“這個時間的引用”。

這個功能在某些時候會變得十分有用,比如當你處理***出現的 bug,自言自語道:“這個功能明明昨天還是好好的,到底又改了些什么”,不用盯著滿屏的 git 日志的輸出試圖弄清楚什么時候更改了提交,您只需運行 git diff HEAD@{yesterday},會看到從昨天以來的所有修改,這也適用于較長的時間段(例如 git diff HEAD@{'2 months ago'}) ,以及一個確切的日期(例如git diff HEAD@{'2010-01-01 12:00:00'})。

您還可以將這些基于日期的修改參數與使用修正參數的任何 Git 子命令一起使用。在 gitrevisions 手冊頁中有關于具體使用哪種格式的詳細信息。

12. 全知的 reflog

你是不是試過在 rebase 時干掉過某次提交,后來又發現你需要保留這次提交的一些東西?你可能覺得這些提交的東西已經永遠找不回來了,只能從頭再來了。其實不然,但如果你在本地工作副本中提交了,提交就會進入到 "引用日志" ,你仍然可以訪問到。

運行 git reflog 將在本地工作副本中顯示當前分支的所有活動的列表,并為您提供每個提交的 SHA1 值。一旦發現你 rebase 時放棄的那個提交,你可以運行 git checkout 來檢出該次提交,復制好你需要的信息,然后再運行 git checkout HEAD 返回到分支***的提交去。

希望這些技巧中至少有一個能教你一些關于 Git 的新知識,Git 已經 12 歲了,在這個持續創新,不斷添加新特性的項目里,你最喜歡哪個技巧?

責任編輯:武曉燕 來源: Java技術棧
相關推薦

2018-04-15 15:43:46

Git技巧命令

2012-12-12 13:44:31

Git

2021-04-15 11:37:47

NumpyPython代碼

2023-08-31 22:45:15

Git命令效率

2025-04-11 08:26:41

2015-08-04 10:51:26

vim效率技巧

2023-10-26 18:05:37

Git命令差異

2018-06-16 08:35:57

UnixLinux命令

2009-10-27 09:09:06

Eclipse技巧

2024-01-03 14:54:56

PythonPandas數據處理工具

2017-03-13 16:48:05

Git技巧

2015-08-24 08:59:13

Git技巧

2015-11-30 17:12:31

Git使用技巧

2024-02-26 08:20:00

CSS開發

2021-01-12 11:37:09

Python編程語言開發

2020-07-09 15:10:20

開發技能代碼

2023-12-19 13:31:00

CSS前端技巧

2022-11-04 15:56:41

2025-09-23 08:09:13

2020-05-22 22:48:01

GUI Git開發命令行
點贊
收藏

51CTO技術棧公眾號

年下总裁被打光屁股sp| 国产精品黄色影片导航在线观看| 伊人影院在线观看视频| ****av在线网毛片| 国产精品进线69影院| 成人欧美视频在线| 国产精品视频一区在线观看| 99九九热只有国产精品| 亚洲国产高清福利视频| 99视频在线免费| av免费在线观看网址| 久久天天做天天爱综合色| 成人日韩在线电影| 日韩中文字幕在线观看视频| 91欧美在线| 日韩精品高清在线观看| www.桃色.com| 国产日韩电影| 亚洲国产精品久久久久婷婷884 | 国产精品白丝在线| 成人国产精品久久久久久亚洲| 国产真人真事毛片| 偷拍欧美精品| 一区二区三区动漫| 亚洲天堂网一区二区| 77成人影视| 欧美一级搡bbbb搡bbbb| 亚洲一级免费观看| 我爱我色成人网| 午夜视频在线观看一区二区三区| 成人性做爰片免费视频| 2021av在线| 久久久夜色精品亚洲| 国产精品一区二区在线观看| 国产一区二区在线不卡| 秋霞影院一区二区| 国产99在线|中文| 好吊妞视频一区二区三区| 欧美三级不卡| 色综合视频网站| 国产精品视频一区二区三| 日韩综合在线| 最近中文字幕日韩精品| 最新中文字幕av| 精品福利久久久| 亚洲深夜福利在线| 91精品人妻一区二区三区蜜桃欧美 | 国产精品久久观看| 中文国产成人精品| 国产一区二区三区精品在线| av一区二区在线播放| 亚洲日本欧美日韩高观看| 免费成人蒂法网站| av日韩精品| 欧美精品一区视频| www.88av| 国产精品一区二区99| 亚洲视频欧洲视频| 国产无遮挡在线观看| 成人激情诱惑| 日韩在线视频观看正片免费网站| 黄色香蕉视频在线观看| 在线中文一区| 久久久久久噜噜噜久久久精品| 精品一级少妇久久久久久久| 亚洲日本视频| 欧美洲成人男女午夜视频| 99久久精品国产亚洲| 日本伊人精品一区二区三区观看方式| 国产精品久久久久久亚洲调教 | 第84页国产精品| 欧洲精品中文字幕| 天天色天天综合网| 97久久精品| 日韩av在线一区| 欧美亚洲色综久久精品国产| 欧美一区二区三区另类| 91精品国产精品| 五月激情丁香网| 国产一区二区视频在线播放| 99高清视频有精品视频| 涩爱av在线播放一区二区| 中文字幕成人网| 日韩亚洲欧美一区二区| 九色porny自拍视频在线播放| 色国产综合视频| 亚洲国产午夜精品| 欧美久久香蕉| 日韩三级影视基地| 三级黄色在线视频| 开心九九激情九九欧美日韩精美视频电影 | 久久尤物电影视频在线观看| 亚洲一区二区不卡视频| 美女精品视频| 欧美日韩情趣电影| 波多野结衣加勒比| 天天综合精品| 欧美在线观看一区二区三区| 国产影视一区二区| 久久综合九色综合97_久久久| 一本一道久久a久久精品综合| av老司机在线观看| 在线播放视频一区| 免费看污片网站| 欧美激情第8页| 国产精品美女主播在线观看纯欲| 亚洲精品一区二区三区不卡| 中文久久乱码一区二区| 六月丁香婷婷激情| 久久视频社区| 中文字幕日韩欧美在线视频| 日本少妇激情视频| 国精产品一区一区三区mba桃花| 久久久99爱| 美女尤物在线视频| 欧美一区二区视频在线观看| 国产高清一区二区三区四区| 雨宫琴音一区二区在线| 92看片淫黄大片看国产片| 国产在线高清| 欧美日韩国产精品专区| 欧美性猛交乱大交| 99免费精品| 国产精品情侣自拍| 韩国三级在线观看久| 欧美日韩在线免费| 色婷婷精品久久二区二区密 | 黄色a级片免费| 国产成人tv| 欧美黄色性视频| 一本一道人人妻人人妻αv| 久久精品人人做人人爽人人| 成人综合视频在线| 欧美国产不卡| 91国语精品自产拍在线观看性色 | 久久久久久久久久看片| 一区二区传媒有限公司| 欧美三级午夜理伦三级在线观看| 久久99精品久久久久久琪琪| 999精品国产| 中文字幕一区二区三| 五月天亚洲视频| 成人一区不卡| 国产啪精品视频| 日本中文字幕视频在线| 欧美欧美欧美欧美首页| 亚洲av无一区二区三区| 久久爱www久久做| 一区二区三区四区不卡| 国产蜜臀一区二区打屁股调教| 日韩欧美一二三区| 久久久久成人精品无码| 成人精品视频网站| 人妻av中文系列| 日韩最新在线| 国产精品免费福利| 免费大片在线观看www| 欧美日韩精品免费观看视频| 欧美性生交大片| 国产精品综合在线视频| 野外做受又硬又粗又大视频√| 国产ts一区| 日本久久久久久久久| 国产h在线观看| 欧美人与性动xxxx| 欧美久久久久久久久久久久| 99久久婷婷国产| 日本美女高潮视频| 欧美军人男男激情gay| 成人免费看黄网站| 日本三级韩国三级欧美三级| 亚洲精品国产电影| 五月婷婷丁香在线| 亚洲色图清纯唯美| 亚州av综合色区无码一区| 日韩和的一区二区| 国产日韩欧美大片| 亚洲人成网77777色在线播放| 国产精品久久视频| 欧洲中文在线| 伊人精品在线观看| 精品人妻一区二区三区四区不卡| 欧美日韩国产综合新一区 | 亚洲综合色视频| 草草影院第一页| 韩国一区二区视频| 日韩在线视频在线观看| 天天影视天天精品| 欧美不卡在线一区二区三区| 97久久精品一区二区三区的观看方式 | 丁香花高清在线观看完整版| 亚洲区在线播放| 精品久久人妻av中文字幕| 好吊成人免视频| 永久久久久久久| 久久精品视频一区二区| 不许穿内裤随时挨c调教h苏绵| 久久蜜桃精品| 久久久久久av无码免费网站下载| 国产欧美日韩| 国产在线一区二区三区播放| 色综合.com| 青草热久免费精品视频| 欧美色图天堂| 久久精品国产96久久久香蕉| 韩国精品视频| 亚洲精品二三区| 亚洲第一精品网站| 欧美精品精品一区| 欧美人一级淫片a免费播放| 亚洲一区二三区| 亚洲一级二级片| 久久久久久久久蜜桃| 精品久久久久一区二区| 国产一区二区三区视频在线播放| 亚洲色精品三区二区一区| 精品二区久久| 男女爱爱视频网站| 日韩精品免费一区二区三区| 久久综合伊人77777麻豆| ady日本映画久久精品一区二区| 成人午夜在线视频一区| 精品国产欧美日韩一区二区三区| 69国产精品成人在线播放| 人人澡人人添人人爽一区二区| 日韩中文字幕第一页| yw视频在线观看| 亚洲石原莉奈一区二区在线观看| 偷拍25位美女撒尿视频在线观看| 欧美大片日本大片免费观看| 国产人妻精品一区二区三| 欧美三级三级三级爽爽爽| 无码任你躁久久久久久久| 精品美女永久免费视频| 国产91av视频| 激情成人在线视频| 国产性xxxx高清| 亚洲成人久久影院| 亚洲国产精一区二区三区性色| 亚洲夂夂婷婷色拍ww47| 久久久久久久伊人| 午夜精品福利一区二区三区av| 一级aaa毛片| 欧美视频一区二区三区…| 性无码专区无码| 日本道在线观看一区二区| 天天操天天干天天摸| 欧美专区亚洲专区| 中文文字幕一区二区三三| 欧美天天综合网| 亚洲视频久久久| 制服丝袜亚洲精品中文字幕| 99精品在线视频观看| 日韩精品一区二区在线观看| 亚洲第一成人av| 亚洲精品自拍第一页| 免费成人av电影| 中文国产亚洲喷潮| 超碰在线网址| 久久久亚洲影院你懂的| 中文字幕 在线观看| 国产成人精品综合| 99久久这里有精品| 国产精品成人观看视频免费| 欧美日韩另类图片| 日韩精品欧美专区| 综合天堂av久久久久久久| 欧美一级视频在线播放| 久久激情网站| 欧美视频国产视频| 成人精品一区二区三区中文字幕| 欧洲一级黄色片| 日本一区二区三区高清不卡| www欧美com| 欧美性猛交xxxxx水多| 中文字幕一区二区人妻视频| 欧美精品九九99久久| 手机在线观看毛片| 在线看片第一页欧美| 色呦呦在线免费观看| 欧美在线视频一区| 国产精品2区| 久久国产精品-国产精品| 日韩三级在线| 欧美成人免费在线观看视频| 麻豆成人久久精品二区三区红| 少妇搡bbbb搡bbb搡打电话| 国产丝袜在线精品| 老女人性淫交视频| 在线精品亚洲一区二区不卡| 精品久久国产视频| 亚洲色图在线观看| 国产区美女在线| 成人久久久久久| 欧美猛男男男激情videos| 国产激情在线看| 日韩精彩视频在线观看| 五月天激情小说| 最新高清无码专区| 黄色污污视频软件| 精品国产三级电影在线观看| 91网页在线观看| 2019中文字幕免费视频| 欧美经典一区| 中文字幕一区二区三区5566| 亚洲综合精品四区| 国产成人精品一区二区在线小狼 | 亚洲成人第一| 国产精品日韩久久久| www日本在线观看| 亚洲欧洲av一区二区三区久久| 国产精品乱子伦| 欧美成人一区二区三区在线观看 | 久久出品必属精品| 中文字幕av一区 二区| 狠狠人妻久久久久久综合| 日韩精品一区二区三区中文不卡 | 无遮挡动作视频在线观看免费入口| 欧美在线亚洲一区| 精品按摩偷拍| 9色porny| 国产成人午夜精品5599 | 欧美午夜片在线免费观看| 亚洲精品网站在线| 精品中文字幕在线| 成人在线啊v| 日韩国产精品毛片| 精品一区精品二区高清| 国产免费嫩草影院| 欧美主播一区二区三区美女| 色视频在线看| 日本久久久久久久久久久| 中文字幕亚洲影视| 免费日韩视频在线观看| ww久久中文字幕| 麻豆成人免费视频| 亚洲美腿欧美激情另类| 亚洲精品动漫| 青娱乐一区二区| 日本欧美韩国一区三区| 久久久久久久毛片| 欧美少妇性性性| 在线毛片网站| 91精品中文在线| 欧美激情精品久久久六区热门| 深夜福利网站在线观看| 亚洲精品日韩一| 丰满肥臀噗嗤啊x99av| 亚洲91精品在线| 免费国产自久久久久三四区久久| 日日摸天天爽天天爽视频| 中文成人综合网| 国产又粗又猛又爽又黄91| 精品国产一区二区三区久久狼5月| 亚洲网站三级| 97超碰国产精品| 91在线视频网址| 国产天堂第一区| 欧美成人一区在线| 久久亚州av| 欧美激情国产精品日韩| 国产女人18毛片水真多成人如厕| 国产一区二区三区中文字幕| 欧美交受高潮1| 国产精品一国产精品| 亚洲黄色av片| 亚洲高清视频的网址| 欧美日韩影视| 国产日韩视频在线观看| 欧美午夜一区| 99久久久久久久久久| 欧美日韩一区二区三区视频| av网站免费在线观看| 国外成人免费视频| 男女视频一区二区| 欧美日韩一级大片| 精品亚洲男同gayvideo网站 | 日韩av中文字幕一区二区| 在线免费看av网站| 精品久久一二三区| www.久久.com| 成人黄色大片网站| 国产日韩欧美精品在线| 精品国自产在线观看| 欧美怡春院一区二区三区| 亚洲精品网址| 丰腴饱满的极品熟妇| 日韩一区二区三区三四区视频在线观看| 蜜桃在线视频| 一区二区三区四区免费观看| 久久久久久久久一| 亚洲黄色在线播放| 国产精品欧美一区二区三区奶水| 伊人成人在线视频| 丁香六月激情综合| 亚洲精品成人网| 精品一区二区三区中文字幕在线 | 中文字幕精品—区二区四季| 亚洲精品久久久蜜桃动漫| 国产精品视频精品视频|