GitHub三天超4K星:玩转Git的72个神奇技巧

电脑信息 2023-01-29 win7问题 13 ℃
正文

GitHub三天超4K星:玩转Git的72个神奇技巧

新智元推荐

来源:GitHub

编辑:金磊

【新智元导读】众所周知,Git是一个“分布式版本管理工具”,简单的理解版本管理工具win7强制删除文件。本文介绍了与使用Git相关的72个技巧,文末附带一张超详细的脑图。GitHub发布3天已经超过4000星,值得收藏!

大家在用Git写东西的时候都用过“回撤”这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用“回撤”是找不回来的win7强制删除文件。

而“版本管理工具”能记录每次的修改,只要提交到版本仓库,你就可以找到之前任何时刻的状态(文本状态)win7强制删除文件。

下面的内容就是列举了常用的Git命令和一些小技巧,可以通过"页面内查找"的方式进行快速查询:Ctrl/Command+fwin7强制删除文件。

开卷必读

如果之前未使用过Gitwin7强制删除文件,可以学习Git小白教程入门

1、一定要先测试命令的效果后,再用于工作环境中,以防造成不能弥补的后果!到时候别拿着砍刀来找我win7强制删除文件。

2、所有的命令都在gitversion2.7.4(AppleGit-66)下测试通过win7强制删除文件。

3、统一概念:

工作区:改动(增删文件和内容);暂存区:输入命令:gitadd改动的文件名,此次改动就放到了‘暂存区’;本地仓库(简称:本地):输入命令:gitcommit此次修改的描述,此次改动就放到了’本地仓库’,每个commit,我叫它为一个‘版本’;远程仓库(简称:远程):输入命令:gitpush远程仓库,此次改动就放到了‘远程仓库’(GitHub等);commit-id:输出命令:gitlog,最上面那行commitxxxxxx,后面的字符串就是commit-idwin7强制删除文件。

展开全文

目录

展示帮助信息回到远程仓库的状态重设第一个commit展示工作区和暂存区的不同展示暂存区和最近版本的不同展示暂存区、工作区和最近版本的不同快速切换分支上一个分支删除已经合并到master的分支展示本地分支关联远程仓库的情况关联远程分支列出所有远程分支列出本地和远程分支创建并切换到本地分支从远程分支中创建并切换到本地分支删除本地分支删除远程分支重命名本地分支查看标签查看标签详细信息本地创建标签推送标签到远程仓库删除本地标签删除远程标签切回到某个标签放弃工作区的修改恢复删除的文件以新增一个commit的方式还原某一个commit的修改回到某个commit的状态win7强制删除文件,并删除后面的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在commitlog中显示GPG签名删除全局设置新建并切换到新分支上,同时这个分支没有任何commit展示任意分支某一文件的内容clone下来指定的单一分支忽略某个文件的改动忽略文件的权限变化以最后提交的顺序列出所有Git分支在commitlog中查找相关内容把暂存区的指定file放到工作区中强制推送一图详解

技巧大全详解

展示帮助信息

githelp-g

Thecommandoutputasbelow:

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

回到远程仓库的状态

抛弃本地所有的修改,回到远程仓库的状态win7强制删除文件。

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

重设第一个commit

也就是把所有的改动都重新放回工作区,并清空所有的commit,这样就可以重新提交第一个commit了win7强制删除文件。

gitupdate-ref-dHEAD

展示工作区和暂存区的不同

输出工作区和暂存区的different(不同)win7强制删除文件。

gitdiff

还可以展示本地仓库中任意两个commit之间的文件变动:

gitdiff

展示暂存区和最近版本的不同

输出暂存区和本地最近的版本(commit)的different(不同)win7强制删除文件。

gitdiff--cached

展示暂存区、工作区和最近版本的不同

输出工作区、暂存区和本地最近的版本(commit)的different(不同)win7强制删除文件。

gitdiffHEAD

快速切换分支上一个分支

gitcheckout-

删除已经合并到master的分支

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

展示本地分支关联远程仓库的情况

gitbranch-vv

关联远程分支

关联之后,gitbranch-vv就可以展示关联的远程分支名了,同时推送到远程仓库直接:gitpush,不需要指定远程仓库了win7强制删除文件。

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上win7强制删除文件,如果需要指定commit打tag:

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

推送标签到远程仓库

首先要保证本地创建好win7强制删除文件了标签才可以推送标签到远程仓库:

gitpushorigin

一次性推送所有标签win7强制删除文件,同步到远程仓库:

gitpushorigin--tags

删除本地标签

gittag-d

删除远程标签

删除远程标签需要先删除本地标签win7强制删除文件,再执行下面的命令:

gitpushorigin:refs/tags/

切回到某个标签

一般上线之前都会打tag,就是为了防止上线后出现问题,方便快速回退到上一版本win7强制删除文件。下面的命令是回到某一标签下的状态:

gitcheckout-bbranch_nametag_name

放弃工作区的修改

gitcheckout

放弃所有修改:

gitcheckout.

恢复删除的文件

gitrev-list-n1HEAD--#得到deleting_commitgitcheckout^--#回到删除文件deleting_commit之前的状态

以新增一个commit的方式还原某一个commit的修改

gitrevert

回到某个commit的状态win7强制删除文件,并删除后面的commit

和revert的区别:reset命令会抹去某个commitid之后的所有commit

gitreset#默认就是-mixed参数win7强制删除文件。gitreset–mixedHEAD^#回退至上个版本,它将重置HEAD到另外一个commit,并且重置暂存区以便和HEAD相匹配,但是也到此为止。工作区不会被更改。gitreset–softHEAD~3#回退至三个版本之前,只回退了commit的信息,暂存区和工作区与回退之前保持一致。如果还要提交,直接commit即可gitreset–hard#彻底回退到指定commit-id的状态,暂存区和工作区也会变为指定commit-id版本的内容

修改上一个commit的描述

gitcommit--amend

查看commit历史

gitlog

查看某段代码是谁写的

blame的意思为‘责怪’,你懂的win7强制删除文件。

gitblame

显示本地更新过HEAD的git命令记录

每次更新了HEAD的git命令比如commint、amend、cherry-pick、reset、revert等都会被记录下来(不限分支),就像shell的history一样win7强制删除文件。这样你可以reset到任何一次更新了HEAD的操作之后,而不仅仅是回到当前分支下的某个commit之后的状态。

gitreflog

修改作者名

gitcommit--amend--author='AuthorName'

修改远程仓库的url

gitremoteset-urlorigin

增加远程仓库

gitremoteaddorigin

列出所有远程仓库

gitremote

查看两个星期内的改动

gitwhatchanged--since='2weeksago'

把A分支的某一个commitwin7强制删除文件,放到B分支上

这个过程需要cherry-pick命令

gitcheckout&&gitcherry-pick

给git命令起别名

简化命令

gitconfig--globalalias.比如:gitstatus改成gitstwin7强制删除文件,这样可以简化命令gitconfig--globalalias.ststatus

存储当前的修改win7强制删除文件,但不用提交commit

详解可以参考廖雪峰老师的git教程

gitstash

保存当前状态win7强制删除文件,包括untracked的文件

untracked文件:新建的文件

gitstash-u

展示所有stashes

gitstashlist

回到某个stash的状态

gitstashapply

回到最后一个stash的状态win7强制删除文件,并删除这个stash

gitstashpop

删除所有的stash

gitstashclear

从stash中拿出某个文件的修改

gitcheckout--

展示所有tracked的文件

gitls-files-t

展示所有untracked的文件

gitls-files--others

展示所有忽略的文件

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

强制删除untracked的文件

可以用来删除新建的文件win7强制删除文件。如果不指定文件文件名,则清空所有工作的untracked文件。clean命令,注意两点:

clean后,删除的文件无法找回;不会影响tracked的文件的改动,只会删除untracked的文件win7强制删除文件。gitclean-f

强制删除untracked的目录

可以用来删除新建的目录,注意:这个命令也可以用来删除untracked的文件win7强制删除文件。详情见上一条。

gitclean-df

展示简化的commit历史

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

把某一个分支到导出成一个文件

gitbundlecreate

从包中导入分支

新建一个分支win7强制删除文件,分支内容就是上面gitbundlecreate命令导出的内容

gitclonerepo.bundle-b

执行rebase之前自动stash

gitrebase--autostash

从远程仓库根据IDwin7强制删除文件,拉下某一状态,到本地分支

gitfetchoriginpull//head:

详细展示一行中的修改

gitdiff--word-diff

清除gitignore文件中记录的文件

gitclean-X-f

展示所有alias和configs

注意:config分为:当前目录(local)和全局(golbal)的configwin7强制删除文件,默认为当前目录的config

gitconfig--local--list(当前目录)gitconfig--global--list(全局)

展示忽略的文件

gitstatus--ignored

commit历史中显示Branch1有的win7强制删除文件,但是Branch2没有commit

gitlogBranch1^Branch2

在commitlog中显示GPG签名

gitlog--show-signature

删除全局设置

gitconfig--global--unset

新建并切换到新分支上win7强制删除文件,同时这个分支没有任何commit

相当于保存修改win7强制删除文件,但是重写commit历史

gitcheckout--orphan

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

gitshow:

clone下来指定的单一分支

忽略某个文件的改动

关闭track指定文件的改动win7强制删除文件,也就是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/

在commitlog中查找相关内容

通过grep查找win7强制删除文件,given-text:所需要查找的字段

gitlog--all--grep=''

把暂存区的指定file放到工作区中

不添加参数win7强制删除文件,默认是-mixed

gitreset

强制推送

gitpush-f

一图详解

GitHub三天超4K星:玩转Git的72个神奇技巧

原文链接:

更多阅读

Nature重磅封面:复活死亡大脑!新智元春季招聘开启win7强制删除文件,一起弄潮AI之巅!

岗位详情请戳:

GitHub三天超4K星:玩转Git的72个神奇技巧

GitHub三天超4K星:玩转Git的72个神奇技巧

本文TAG:

最新文章
热门文章
标签列表
Zen Cart 中文版