色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

介紹與使用Git相關的72個技巧,文末附帶一張超詳細的腦圖

DPVg_AI_era ? 來源:lq ? 2019-04-26 09:42 ? 次閱讀

眾所周知,Git是一個“分布式版本管理工具”,簡單的理解版本管理工具。本文介紹了與使用Git相關的72個技巧,文末附帶一張超詳細的腦圖。GitHub發布3天已經超過4000星,值得收藏!

大家在用Git寫東西的時候都用過 “回撤” 這個功能,但是回撤只能回撤幾步,假如想要找回我三天之前的修改,光用 “回撤” 是找不回來的。

而 “版本管理工具” 能記錄每次的修改,只要提交到版本倉庫,你就可以找到之前任何時刻的狀態(文本狀態)。

下面的內容就是列舉了常用的 Git 命令和一些小技巧,可以通過 "頁面內查找" 的方式進行快速查詢:Ctrl/Command+f。

開卷必讀

如果之前未使用過 Git,可以學習 Git 小白教程入門

1、一定要先測試命令的效果后,再用于工作環境中,以防造成不能彌補的后果!到時候別拿著砍刀來找我。

2、所有的命令都在git version 2.7.4 (Apple Git-66)下測試通過。

3、統一概念:

工作區:改動(增刪文件和內容);

暫存區:輸入命令:git add 改動的文件名,此次改動就放到了 ‘暫存區’;

本地倉庫(簡稱:本地):輸入命令:git commit 此次修改的描述,此次改動就放到了 ’本地倉庫’,每個 commit,我叫它為一個 ‘版本’;

遠程倉庫(簡稱:遠程):輸入命令:git push 遠程倉庫,此次改動就放到了 ‘遠程倉庫’(GitHub 等);

commit-id:輸出命令:git log,最上面那行 commit xxxxxx,后面的字符串就是 commit-id。

目錄

展示幫助信息

回到遠程倉庫的狀態

重設第一個commit

展示工作區和暫存區的不同

展示暫存區和最近版本的不同

展示暫存區、工作區和最近版本的不同

快速切換分支上一個分支

刪除已經合并到 master 的分支

展示本地分支關聯遠程倉庫的情況

關聯遠程分支

列出所有遠程分支

列出本地和遠程分支

創建并切換到本地分支

從遠程分支中創建并切換到本地分支

刪除本地分支

刪除遠程分支

重命名本地分支

查看標簽

查看標簽詳細信息

本地創建標簽

推送標簽到遠程倉庫

刪除本地標簽

刪除遠程標簽

切回到某個標簽

放棄工作區的修改

恢復刪除的文件

以新增一個 commit 的方式還原某一個 commit 的修改

回到某個 commit 的狀態,并刪除后面的 commit

修改上一個 commit 的描述

查看 commit 歷史

顯示本地更新過 HEAD 的 git 命令記錄

修改作者名

修改遠程倉庫的 url

增加遠程倉庫

列出所有遠程倉庫

查看兩個星期內的改動

把 A 分支的某一個 commit,放到 B 分支上

給 git 命令起別名

存儲當前的修改,但不用提交 commit

保存當前狀態,包括 untracked 的文件

展示所有 stashes

回到某個 stash 的狀態

回到最后一個 stash 的狀態,并刪除這個 stash

刪除所有的 stash

從 stash 中拿出某個文件的修改

展示所有 tracked 的文件

展示所有 untracked 的文件

展示所有忽略的文件

強制刪除 untracked 的文件

強制刪除 untracked 的目錄

展示簡化的 commit 歷史

查看某段代碼是誰寫的

把某一個分支到導出成一個文件

從包中導入分支

執行 rebase 之前自動 stash

從遠程倉庫根據 ID,拉下某一狀態,到本地分支

詳細展示一行中的修改

清除 .gitignore 文件中記錄的文件

展示所有 alias 和 configs

展示忽略的文件

commit 歷史中顯示 Branch1 有的,但是 Branch2 沒有 commit

在 commit log 中顯示 GPG 簽名

刪除全局設置

新建并切換到新分支上,同時這個分支沒有任何 commit

展示任意分支某一文件的內容

clone 下來指定的單一分支

忽略某個文件的改動

忽略文件的權限變化

以最后提交的順序列出所有 Git 分支

在 commit log 中查找相關內容

把暫存區的指定 file 放到工作區中

強制推送

一圖詳解

技巧大全詳解

展示幫助信息

githelp-g

Thecommandoutputasbelow:

ThecommonGitguidesare:attributesDefiningattributesperpathcliGitcommand-lineinterfaceandconventionscore-tutorialAGitcoretutorialfordeveloperscvs-migrationGitforCVSusersdiffcoreTweakingdiffoutputeverydayAusefulminimumsetofcommandsforEverydayGitglossaryAGitGlossaryhooksHooksusedbyGitignoreSpecifiesintentionallyuntrackedfilestoignoremodulesDefiningsubmodulepropertiesnamespacesGitnamespacesrepository-layoutGitRepositoryLayoutrevisionsSpecifyingrevisionsandrangesforGittutorialAtutorialintroductiontoGittutorial-2AtutorialintroductiontoGit:parttwoworkflowsAnoverviewofrecommendedworkflowswithGit'githelp-a'and'githelp-g'listavailablesubcommandsandsomeconceptguides.See'githelp'or'githelp'toreadaboutaspecificsubcommandorconcept.

回到遠程倉庫的狀態

拋棄本地所有的修改,回到遠程倉庫的狀態。

gitfetch--all&&gitreset--hardorigin/master

重設第一個 commit

也就是把所有的改動都重新放回工作區,并清空所有的 commit,這樣就可以重新提交第一個 commit 了。

gitupdate-ref-dHEAD

展示工作區和暫存區的不同

輸出工作區和暫存區的 different (不同)。

gitdiff

還可以展示本地倉庫中任意兩個 commit 之間的文件變動:

gitdiff

展示暫存區和最近版本的不同

輸出暫存區和本地最近的版本 (commit) 的 different (不同)。

gitdiff--cached

展示暫存區、工作區和最近版本的不同

輸出工作區、暫存區 和本地最近的版本 (commit) 的 different (不同)。

gitdiffHEAD

快速切換分支上一個分支

gitcheckout-

刪除已經合并到 master 的分支

gitbranch--mergedmaster|grep-v'^*|master'|xargs-n1gitbranch-d

展示本地分支關聯遠程倉庫的情況

gitbranch-vv

關聯遠程分支

關聯之后,git branch -vv 就可以展示關聯的遠程分支名了,同時推送到遠程倉庫直接:git push,不需要指定遠程倉庫了。

gitbranch-uorigin/mybranch

或者在 push 時加上 -u 參數

gitpushorigin/mybranch-u

列出所有遠程分支

-r 參數相當于:remote:

gitbranch-r

列出本地和遠程分支

-a 參數相當于:all

gitbranch-a

創建并切換到本地分支

gitcheckout-b

從遠程分支中創建并切換到本地分支

gitcheckout-borigin/

刪除本地分支

gitbranch-d

刪除遠程分支

gitpushorigin--delete

或者

gitpushorigin:

重命名本地分支

gitbranch-m

查看標簽

gittag

展示當前分支的最近的 tag

gitdescribe--tags--abbrev=0

查看標簽詳細信息

gittag-ln

本地創建標簽

gittag

默認 tag 是打在最近的一次 commit 上,如果需要指定 commit 打 tag:

$gittag-a-m"v1.0發布(描述)"

推送標簽到遠程倉庫

首先要保證本地創建好了標簽才可以推送標簽到遠程倉庫:

gitpushorigin

一次性推送所有標簽,同步到遠程倉庫:

gitpushorigin--tags

刪除本地標簽

gittag-d

刪除遠程標簽

刪除遠程標簽需要先刪除本地標簽,再執行下面的命令:

gitpushorigin:refs/tags/

切回到某個標簽

一般上線之前都會打 tag,就是為了防止上線后出現問題,方便快速回退到上一版本。下面的命令是回到某一標簽下的狀態:

gitcheckout-bbranch_nametag_name

放棄工作區的修改

gitcheckout

放棄所有修改:

gitcheckout.

恢復刪除的文件

gitrev-list-n1HEAD--#得到deleting_commitgitcheckout^--#回到刪除文件deleting_commit之前的狀態

以新增一個 commit 的方式還原某一個 commit 的修改

gitrevert

回到某個 commit 的狀態,并刪除后面的 commit

和 revert 的區別:reset 命令會抹去某個 commit id 之后的所有 commit

gitreset#默認就是-mixed參數。gitreset–mixedHEAD^#回退至上個版本,它將重置HEAD到另外一個commit,并且重置暫存區以便和HEAD相匹配,但是也到此為止。工作區不會被更改。gitreset–softHEAD~3#回退至三個版本之前,只回退了commit的信息,暫存區和工作區與回退之前保持一致。如果還要提交,直接commit即可gitreset–hard#徹底回退到指定commit-id的狀態,暫存區和工作區也會變為指定commit-id版本的內容

修改上一個 commit 的描述

gitcommit--amend

查看 commit 歷史

gitlog

查看某段代碼是誰寫的

blame 的意思為‘責怪’,你懂的。

gitblame

顯示本地更新過 HEAD 的 git 命令記錄

每次更新了 HEAD 的 git 命令比如 commint、amend、cherry-pick、reset、revert 等都會被記錄下來(不限分支),就像 shell 的 history 一樣。這樣你可以 reset 到任何一次更新了 HEAD 的操作之后,而不僅僅是回到當前分支下的某個 commit 之后的狀態。

gitreflog

修改作者名

gitcommit--amend--author='AuthorName'

修改遠程倉庫的 url

gitremoteset-urlorigin

增加遠程倉庫

gitremoteaddorigin

列出所有遠程倉庫

gitremote

查看兩個星期內的改動

gitwhatchanged--since='2weeksago'

把 A 分支的某一個 commit,放到 B 分支上

這個過程需要 cherry-pick 命令

gitcheckout&&gitcherry-pick

給 git 命令起別名

簡化命令

gitconfig--globalalias.比如:git status 改成 git st,這樣可以簡化命令gitconfig--globalalias.ststatus

存儲當前的修改,但不用提交 commit

詳解可以參考廖雪峰老師的 git 教程

gitstash

保存當前狀態,包括 untracked 的文件

untracked 文件:新建的文件

gitstash-u

展示所有 stashes

gitstashlist

回到某個 stash 的狀態

gitstashapply

回到最后一個 stash 的狀態,并刪除這個 stash

gitstashpop

刪除所有的 stash

gitstashclear

從 stash 中拿出某個文件的修改

gitcheckout--

展示所有 tracked 的文件

gitls-files-t

展示所有 untracked 的文件

gitls-files--others

展示所有忽略的文件

gitls-files--others-i--exclude-standard

強制刪除 untracked 的文件

可以用來刪除新建的文件。如果不指定文件文件名,則清空所有工作的 untracked 文件。clean 命令,注意兩點:

clean 后,刪除的文件無法找回;

不會影響 tracked 的文件的改動,只會刪除 untracked 的文件。

gitclean-f

強制刪除 untracked 的目錄

可以用來刪除新建的目錄,注意:這個命令也可以用來刪除 untracked 的文件。詳情見上一條。

gitclean-df

展示簡化的 commit 歷史

gitlog--pretty=oneline--graph--decorate--all

把某一個分支到導出成一個文件

gitbundlecreate

從包中導入分支

新建一個分支,分支內容就是上面 git bundle create 命令導出的內容

gitclonerepo.bundle-b

執行 rebase 之前自動 stash

gitrebase--autostash

從遠程倉庫根據 ID,拉下某一狀態,到本地分支

gitfetchoriginpull//head:

詳細展示一行中的修改

gitdiff--word-diff

清除 gitignore 文件中記錄的文件

gitclean-X-f

展示所有 alias 和 configs

注意:config 分為:當前目錄(local)和全局(golbal)的 config,默認為當前目錄的 config

gitconfig--local--list(當前目錄)gitconfig--global--list(全局)

展示忽略的文件

gitstatus--ignored

commit 歷史中顯示 Branch1 有的,但是 Branch2 沒有 commit

gitlogBranch1^Branch2

在 commit log 中顯示 GPG 簽名

gitlog--show-signature

刪除全局設置

gitconfig--global--unset

新建并切換到新分支上,同時這個分支沒有任何 commit

相當于保存修改,但是重寫 commit 歷史

gitcheckout--orphan

展示任意分支某一文件的內容

gitshow:

clone 下來指定的單一分支

gitclone-b--single-branchhttps://github.com/user/repo.git

忽略某個文件的改動

關閉 track 指定文件的改動,也就是 Git 將不會在記錄這個文件的改動

gitupdate-index--assume-unchangedpath/to/file

恢復 track 指定文件的改動

gitupdate-index--no-assume-unchangedpath/to/file

忽略文件的權限變化

不再將文件的權限變化視作改動

gitconfigcore.fileModefalse

以最后提交的順序列出所有 Git 分支

最新的放在最上面

gitfor-each-ref--sort=-committerdate--format='%(refname:short)'refs/heads/

在 commit log 中查找相關內容

通過 grep 查找,given-text:所需要查找的字段

gitlog--all--grep=''

把暫存區的指定 file 放到工作區中

不添加參數,默認是 -mixed

gitreset

強制推送

gitpush-f

一圖詳解

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 管理工具
    +關注

    關注

    0

    文章

    24

    瀏覽量

    7632
  • Git
    Git
    +關注

    關注

    0

    文章

    200

    瀏覽量

    15783

原文標題:GitHub三天超4K星:玩轉Git的72個神奇技巧

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    幫忙畫一張詳細的電路,謝謝

    能幫忙畫一張詳細的電路嗎,謝謝了。因為涉及到外部鏈接,怕被誤會發廣告,所以詳細的需求放在附件里面了 *附件:幫忙謝謝.rar
    發表于 05-04 22:59

    一張圖片

    `就一張圖片`
    發表于 12-28 22:37

    急求一張電源原理

    一張有多源輸出端的可調電源的原理,至少有3.3v,5v,9v,12v路輸出和可調電源輸出?急求,謝謝各位大神!
    發表于 12-10 21:48

    對存在的一張RGB圖像將其變換成一張灰度的方法

    對存在的一張RGB圖像將其變換成一張灰度的方法,最好能給出簡單程序。謝謝
    發表于 04-03 15:10

    低壓電器原理動分享

    歡迎文末留言今天從低壓電器、電動機及控制線路、傳感器及控制原理三部分來分享22張超贊的原理動!低壓電器部分1按鈕開關2閘刀...
    發表于 09-06 07:23

    一張奇特的故障電流錄波的分析

    一張奇特的故障電流錄波的分析 通過對一張“故障電流錄波”中短路電流數值和相位變化的分析,從多方面分析其變化的原因,總結出了分
    發表于 07-20 14:45 ?1006次閱讀
    對<b class='flag-5'>一張</b>奇特的故障電流錄波<b class='flag-5'>圖</b>的分析

    CAD將圖形從一張圖紙復制到另一張圖紙為什么會變

    CAD將圖形從一張圖紙復制到另一張圖紙后圖形發生了變化怎么辦? 將一張圖中的東西復制到另一張圖中發生變化的現象經常會發生,遇到這種情況不要覺得奇怪,只要仔細檢查兩
    發表于 10-24 15:50 ?1.4w次閱讀

    果粉必用 iOS 10.3.3 beta 1悄悄為iPad Pro新增3張超美桌布!

    iOS 10.3.3 beta 1在今晨發布,但是如果你利用12.9寸iPad Pro更新的話,蘋果悄悄為你推出3張超美桌布。
    發表于 05-17 14:32 ?2087次閱讀

    一張看懂ERP和MES的區別分析資料下載

    一張看懂ERP和MES的區別
    發表于 01-04 15:44 ?14次下載

    電氣控制原理的22動態

    從低壓電器、電動機及控制線路、傳感器及控制原理三部分來分享22張超贊的原理動
    的頭像 發表于 04-25 16:13 ?1.4w次閱讀
    電氣控制原理的22<b class='flag-5'>張</b>動態<b class='flag-5'>圖</b>

    一張讀懂軟件定義存儲

    什么是軟件定義存儲?杉巖老司機帶你一張讀懂軟件定義存儲!
    發表于 03-10 11:21 ?811次閱讀

    一張理解區分各種傅利葉資料下載

    電子發燒友網為你提供一張理解區分各種傅利葉資料下載的電子資料下載,更有其他相關的電路、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的
    發表于 04-16 08:50 ?21次下載
    <b class='flag-5'>一張</b><b class='flag-5'>圖</b>理解區分各種傅利葉資料下載

    一張了解MCU

    針對MCU畫了一張,可用來了解MCU概念,芯片分類,操作系統,以及供應商
    發表于 10-27 12:36 ?12次下載
    <b class='flag-5'>一張</b><b class='flag-5'>圖</b>了解MCU

    一張看懂STM32芯片型號的命名規則

    一張看懂STM32芯片型號的命名規則
    發表于 12-02 16:51 ?55次下載
    <b class='flag-5'>一張</b><b class='flag-5'>圖</b>看懂STM32芯片型號的命名規則

    一張看懂“PCB設計考慮的因素”

    一張看懂“PCB設計考慮的因素”
    的頭像 發表于 11-23 18:15 ?1112次閱讀
    <b class='flag-5'>一張</b><b class='flag-5'>圖</b>看懂“PCB設計考慮的因素”
    主站蜘蛛池模板: 边做边爱免费视频播放| FERRCHINA内入内射| 性按摩AAAAAAA片| 99re久久精品在线播放| 久久国产精品永久网站| 亚洲日韩视频免费观看| 国产交换丝雨巅峰| 色欲精品久久人妻AV中文字幕| 99热国产这里只有精品6| 美国CERANETWORK超清| 最近中文字幕免费高清MV视频6| 久久99精品涩AV毛片观看| 亚洲精品嫩草AV在线观看| 花蝴蝶免费版高清版| 亚洲欧美中文字幕网站大全| 久久久久久极精品久久久| 曰批视频免费40分钟不要钱| 九九精品久久| A级毛片无码久久精品免费| 欧美伦理片第7页| jealousvue成熟40岁| 性春院| 美女直播喷水| 把极品白丝老师啪到腿软| 秋霞伦理高清视频在线| 变态露出野外调教| 亚洲另类中文字幕| 欧美性爱-第1页| 岛国大片在线播放高清| 色中色成人论坛| 久久精视频| 国产精品亚洲污污网站入口| 亚洲精品在线不卡| 人妻激情综合久久久久蜜桃| 妇少水多18P蜜泬17P亚洲乱| 天天干夜夜叭| 精品久久久久久久国产潘金莲| 岳的奶大又白又胖| 午夜性伦鲁啊鲁免费视频| 久久99这里只有精品| 国产成人无码精品久久久影院|