成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

12個Git實戰建議和技巧分享

運維 系統運維
Git無疑是現在最熱門的版本控制工具,而且正在進一步侵占SVN以及CVS的市場。本文作者從國外技術問答社區Stack Overflow整理的12個很實用的git使用技巧和建議,希望對你有幫助。

Git無疑是現在最熱門的版本控制工具,而且正在進一步侵占SVN以及CVS的市場。本文作者從國外技術問答社區Stack Overflow整理的12個很實用的git使用技巧和建議,希望對你有幫助。

  1.使用“git diff”來折疊多行

  用git diff經常會出現很多內容,導致很多內容被遮住了,讓人很是苦惱,幸運的是這里有個解決方案。

  如果你使用less作為默認的pager,只需要輸入-s,就可以保證不會被diff刷屏了。

  或者,你也可以使用git config設置pager來達到同樣的效果:

  為當前項目設置pager:

$ git config core.pager 'less -r'

  再將pager設置的作用域設置為整個項目:

$ git config --global core.pager 'less -r'

  2.設置全局代理

  在某些網絡環境下,你可能需要為git配置代理,這很簡單,只需要一行命令就可以了:

git config --global https.proxy https://user:password@address:port

  3.clone某個特定分支

  在某些大型項目中,或者只是圖方便,有時候你可能只希望clone某個分支,你可以這樣做:

mkdir $BRANCH

cd $BRANCH

git init

git remote add -t $BRANCH -f origin $REMOTE_REPO

git checkout $BRANCH

  4.比較某個文件和遠程分支上的區別

  很簡單:

git diff localbranch remotebranch filepath

  5.列出版本庫中所有已刪除的文件

  也許你是想將其恢復,因此需要仔細確認某些merge操作,無論如何,列出版本庫中所有已刪除的文件會非常有幫助。你只需要這樣做:

git log --diff-filter=D --summary

  如果你想將其恢復,參照這里。

  如果你不想知道是哪次commit中刪除的,只需要添加一個grep delete。

git log --diff-filter=D --summary | grep delete

  6.在版本庫所有版本中搜尋一條字符串

  往往你想要查找某段代碼、某個函數、一個常量、一個文件,但是卻找不到了。它被刪除了,什么時候刪除的?這個小技巧能搜索整個版本庫中git diff信息,可能會花些時間,但是非常有用:

git rev-list --all | (

while read revision; do

git grep -F 'Your search string' $revision

done

)

  7.應用另外一個(不相關的)本地版本庫中的patch

  從另一個版本庫中cherry-pick一條提交記錄,首先需要將那個版本庫作為一個遠程版本庫添加進來,并fetch其變化,然后cherry-pick其提交記錄。

  如果你追求速度,也可以使用這個未經優化的命令:

git --git-dir=../some_other_repo/.git format-patch -k -1 --stdout <commit SHA>| git am -3 -k

  8.從新的主干中分出一個新分支

  有時候你會在better_brach上工作一段時間,并準備將其設為新的master,你會怎么做?

  這里是Stack Overflow上提供的常規解決方案:

  1.切換到better_brach分支:

git checkout better_branch

  2.保留better_branch分支全部內容,但是記錄合并:

git merge --strategy=ours master

  3.切回mater

git checkout master

  4.快速合并

git merge better_branch

  5.如果你想讓合并步驟變得更清晰,可以添加commit信息。只需要修改下第二步:

git merge --strategy=ours --no-commit master

git commit # Here add your custom message to the commit template

  9.向分支提交一個初始的空commit,保證完全復位

  這樣會重寫歷史記錄,所以只能在未和任何人分享前做,否則將可能把同事者的文件破壞。

  1.創建一個新的空分支,例如:newroot

git checkout --orphan newroot

git rm --cached -r .

git clean -f -d

  2.創建空的commit

git commit --allow-empty -m '[empty] initial commit'

  3.重新發送分支的全部內容

git rebase --onto newroot --root master

  4.刪除臨時分支newroot

git branch -d newroot

  現在master就已經包含了一個空的root commit了。

  10.清空一個分支來做些不同的事

  有時候你會想要從某個分支重新開始,或者打算保留一些邏輯上和主干相關但是跟蹤另一個跨職能方面的代碼,就像GitHub項目的gh-pages。

  但如果你只想重新開始某個分支,清空所有歷史記錄呢?

  1.檢出(checkout)一個分支:

 git checkout -b branch_to_zero

  2.跟上條一樣,先建立增加一個初始的空commit,之后就可以通過重新設置來清空一個分支。

  3.使用hard重置分支到剛剛創建的初始commit:

 git reset --hard initial_commit

  11.如何修改一個特定的commit?

  當你想在推送前重做你最后的commit時,可以使用修改命令(git commit --amend)。如果你想修改的不是最后一個commit呢?

  這種情況下,你可以使用git rebase,例如,你想要修改bbc643cd commit,運行下面的命令:

$git rebase bbc643cd^ --interactive

  在默認的編輯器中選擇并修改你期望修改的,然后保存修改并輸入:

 $ git add <filepattern>

  現在你就可以使用

 $git commit --amend

  來修改commit,之后使用

 $ git rebase --continue

  返回之前最新的commit。

  12.如何隱藏多個已修改文件中一個?

  git stash --keep-index命令可以用來隱藏上次commit中沒有add的東西,之后add想要提交的文件并運行相應命令就可以了。

  按照下面的提示,你可以把一條老的commit提交到多個變更集中:

  互動地rebase最后一條好的commit:

 git rebase -i last_good_commit

  將某些變化標記為edit:

git reset HEAD^

git add file1 file2 file3

  添加相應的文件:

 git add file1 file2 file3

  因此之前沒有添加的文件:

 git stash --keep-index

  別忘了收尾:

git commit

git stash pop

  有必要的話,重復第二步之后的步驟:

git rebase --continue

責任編輯:黃丹 來源: csdn
相關推薦

2017-08-28 22:14:24

開發者Unity

2018-05-04 09:14:09

Git技巧shell命令

2015-08-12 14:43:30

JavaJava文檔

2018-04-15 15:43:46

Git技巧命令

2022-05-10 09:33:50

Pandas技巧代碼

2011-06-16 12:43:22

jQuery

2024-03-18 15:04:02

物聯網通信協議IOT

2025-02-21 12:30:00

字符串前端JavaScript

2024-06-19 10:08:42

Python編程while循環

2021-09-27 18:07:06

物聯網協議物聯網IOT

2025-04-11 08:26:41

2024-01-03 14:54:56

PythonPandas數據處理工具

2014-04-24 10:11:17

iOS性能調優

2021-01-12 11:37:09

Python編程語言開發

2022-11-04 15:56:41

2023-12-19 13:31:00

CSS前端技巧

2020-07-09 15:10:20

開發技能代碼

2024-02-26 08:20:00

CSS開發

2018-10-30 12:15:26

CDN網絡技巧

2022-02-24 10:05:20

Python編程語言代碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91av视频在线免费观看 | 91伊人 | 久久综合影院 | 91精品国产综合久久久久久丝袜 | 亚洲精品永久免费 | 精品美女视频在线观看免费软件 | 欧美性受xxx| 男女搞网站| 日韩中文字幕 | 尹人av| 国产精品久久视频 | 天天综合久久网 | 懂色av一区二区三区在线播放 | 九九热这里只有精品6 | 一区二区三区四区国产 | 精品视频一区二区 | 不卡在线视频 | 嫩草影院网址 | 久色激情 | www.日本国产 | 久久国产一区二区三区 | 激情六月天 | 99精品久久 | 欧美成人高清 | 视频二区 | 日韩在线观看网站 | 性做久久久久久免费观看欧美 | 日韩一区二区三区在线 | 一区二区三区免费 | 天天草天天干 | 亚洲色片网站 | 日韩中文字幕视频 | 成人午夜精品一区二区三区 | 一级看片免费视频囗交动图 | 国产一区二区精品在线 | 日本亚洲精品 | 美日韩中文字幕 | 男女精品久久 | 欧洲妇女成人淫片aaa视频 | 午夜欧美 | 国产精品久久久av |