Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Git常用命令总结

Git常用命令总结

作者头像
zy010101
发布于 2022-05-05 07:57:50
发布于 2022-05-05 07:57:50
24200
代码可运行
举报
文章被收录于专栏:程序员程序员
运行总次数:0
代码可运行

Git设置

Git在初次使用之前,应该进行一些设置。主要是设置user.name和user.email

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git config --global user.name "xxx"       #"xxx"是你的名字
git config --global user.email "email address"     #"email address" 是你的电子邮件地址

初始化仓库

新建一个目录,作为你的项目目录,或者是在已有的项目目录下,输入下面的命令,来初始化一个仓库。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git init

使用下面的命令将你项目的文件纳入仓库中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git add <file>

当你把项目文件添加进来之后,就可以将文件提交的仓库了。使用下面的命令即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git commit -m "xxx"        #"xxx"是本次提交的说明

常用查看操作

下面的命令进行工作区状态查询,查看文件是否被git所跟踪,是否提交到暂存区。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git status

想要对比文件的差异,可以使用下面的命令,该命令后面还可以指定和那个版本做比较。默认是将当前工作区和当前版本进行比较。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git diff

查看Git提交记录,可以使用下面的命令来查看,它显示当前版本之前的所有提交历史。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git log

如果想要查看所有的历史记录,使用下面的命令。它给出所有版本的提交记录,包括当前版本之前和之后的所有历史记录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git reflog

版本回退

版本回退使用下面的命令。HEAD是git中的指向当前版本的指针,HEAD^表示上一个版本,HEAD^^表示上上一个版本,30版本之前HEAD~30。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git reset --hard HEAD^

转到任意版本,可以使用下面的命令。通常该命令需要和git reflog命令配合使用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git reset --hard c2ffbb        #c2ffbb是git reflog查询出来的版本索引

撤销修改

如果你只是想撤销对当前工作区所做的修改,那么你可以使用下面的命令来进行撤销。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git restore <file>

如果你的文件已经使用git add提交到了暂存区,那么撤销暂存区的修改需要使用下面的命令。撤销完暂存区之后,记得也要撤销一下工作区。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git restore --staged LICENSE

那么,如果你的文件已经提交到仓库(git commit),那么这时候撤销操作实际就是版本回退。因为每一次git commit都会产生一个版本。

删除文件

Git也提供了删除文件的操作,可以让你删除不想要的文件。使用下面的命令即可。删除之后,文件也会从当前工作区消失。但是如果之前某个版本有过这个文件,那么如果你后悔了,还可以从该版本拿该文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git rm <file>

增加文件

增加文件,其实是让git来跟踪文件。你只需要将你在项目目录下新增的文件使用git add来进行跟踪即可。这样就可将文件纳入git仓库之中。

从远程仓库克隆

从远程仓库克隆非常简单,使用下面的命令即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone <url> [projectname]

url是仓库的地址,后面的projectname是项目的名字,可以没有。当你不指定名字的时候,就会使用远程仓库上原本的名字。

将本地仓库推送到远程

另一种情况就是你准备把本地的仓库推送到远程,那么首先,你必须在远程新建一个仓库。然后它就会给你一个地址(url),之后使用下面的命令来推送仓库到远程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git remote add <name> <url>

一般而言,这个name都会是origin,这是git默认的叫法,url就是远程仓库给你的地址。因此,该命令更加一般的形式如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git remote add origin <url>

分支操作

创建分支,在git上创建一个分支非常简单,使用下面的命令即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git branch <name>

查看分支命令如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git branch

切换分支命令可以是下面的两条,它们实现的功能是一样的。只不过比较老的git版本不支持switch命令。使用switch其实比较好,这样没有歧义。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git checkout <name>
git switch <name>    #比较新的git版本支持git switch

git也提供了在创建+切换一起完成的指令,如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git checkout -b <name>
git switch -c <name>        #新版本git

删除本地分支命令如下所示。前提是你需要离开这个将被删除的分支,然后删除它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git branch -d <name>

合并某分支到当前分支,使用的命令如下。当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git merge <name>

查看合并分支图的命令如下。 --oneline是控制版本信息在一行内显示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git log --graph --oneline

管理现场

Git提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作。命令如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git stash

你可以同时拥有多个现场,但是不建议这么做。查看现场的命令如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git stash list

 恢复现场可以一步进行,也可以分为两步,分别如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#两步
git stash apply        #恢复现场
git stash drop         #删除现场
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#一步
git stash pop        #恢复现场并删除保存

远程仓库操作

查看远程库信息命令如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git remote -v

推送分支,命令如下。name就是你需要推送的分支名称。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push origin <name>

抓取分支,命令如下。在你抓取某分支之前,应当在本地创建该分支并切换到该分支。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git pull origin <name>

删除远程分支和删除本地分支不太一样,它的指令如下。注意它不会删除本地的同名分支,因此你还需要使用删除本地分支。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push origin --delete <name>

分支管理策略

在实际开发中,我们应该按照⼏个基本原则进⾏分⽀管理: ⾸先, master 分⽀应该是⾮常稳定的,也就是仅⽤来发布新版本,平时不能在上⾯⼲活; 那在哪⼲活呢?⼲活都在 dev 分⽀上,也就是说, dev 分⽀是不稳定的,到某个时候,⽐如1.0版本发布时,再 把 dev 分⽀合并到 master 上,在 master 分⽀发布1.0版本; 你和你的⼩伙伴们每个⼈都在 自己的分⽀上⼲活,每个⼈都有⾃⼰的分⽀,干完活以后,时不时地把自己的分支往 dev 分⽀上合并就可以了。

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。

开发一个新feature,最好新建一个分支;如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

变基

Git有一个叫做rebase的操作,rebase操作可以把本地未push的分叉提交历史整理成直线。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git rebase

标签管理

查看标签命令如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git tag

创建标签命令如下,对当前版本打标签。name是tag的名字。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git tag <name>

对历史提交打标签。name是tag的名字,index是历史提交的索引。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git tag <name> <index>

查看标签信息。name是标签名称。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git show <name>

创建带有说明的标签,用-a指定标签名,-m指定说明文字。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git tag -a <name> -m "xxx" [index]

删除本地标签。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git tag -d <name>

删除远程标签。在删除远程便签之前,应该先删除本地标签。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push origin :refs/tags/<name>

推送标签到远程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push origin <name>        #推送一个标签
git push origin --tags        #推送所有标签

忽略特殊文件

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。GitHub已经为我们准备了各种配置文件,https://github.com/github/gitignore

当然了Gitee也有。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Git常用命令速查手册
命令不断更新中...... Git的四个组成部分 75062926.png 1、初始化仓库 git init 2、将文件添加到仓库 git add 文件名 # 将工作区的某个文件添加到暂存区
小程故事多
2018/08/22
4840
Git常用命令速查手册
git常用命令
注意: git rm file 可以用来删除提交到版本库中的文件,一般删除要执行以下命令:git rm file.txt,git commit -m 'delete',注意在git commit之前还是可以取消删除的,使用git checkout -- file.txt,可以一键取消删除
爱撒谎的男孩
2019/12/31
3880
Git 常用命令总结
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name。
颍川
2019/11/20
4190
git常用命令
git commit -a 将所有跟踪过的文件提交。已跟踪的文件是指添加到暂存区并修改过的文件,新添加但并未添加到暂存区的文件不会被提交。
乐百川
2022/05/05
4180
Git之常用命令
廖雪峰文档:https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344查看工作区
全栈程序员站长
2021/04/07
3680
GIT操作 之 常用指令(入门级)
接下来,我们简单捋一捋这个过程: 下行路程:作为小前端的我在本地电脑(工作区)上的一个文件夹下进行初始化git init,紧接着马不停蹄的撸了一把代码,保存为file.html ------------> 通过 add ,把file.html放到了暂存区 ------------> 然后又通过 commit,把file.html送到了本地仓库 ------------> 最后通过 push,把file.html推送到了远程仓库。
celineWong7
2020/11/05
7380
Git常用命令总结
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
拓荒者
2019/09/25
5830
最全的Git常用命令速查-2021版
虽然如今已有很多可视化的 Git 工具,但是很多时候我们还是需要用到命令直接操作。
小锟哥哥
2022/05/10
3230
最全的Git常用命令速查-2021版
Git常用命令汇总篇(附使用详细介绍)
众所周知,Git是一个开源的分布式版本控制系统,用于跟踪和管理源代码的变更。而Git有着大量的常用命令。
Masutaa大师
2023/08/09
5780
Git常用命令汇总篇(附使用详细介绍)
Git 常用命令总结,掌握这些,轻松驾驭版本管理
最近公司的代码管理工具要从SVN转到Git上,因此虽然之前用过Git,但是都是一些简单的推送提交,因此还是有必要进行一些系统的学习,这里做一下笔记,以备后询,且不定期更新。
ConardLi
2019/10/31
4890
Git 常用命令总结,掌握这些,轻松驾驭版本管理
Git学习总结
git 是分布式的,所以其核心就是分支,分支的意义在于,可以将项目代码按照功能、模块拆分成不同的分支。比如这个产品要加一个支付功能和一个登陆功能,可以创建两个分支,交给不同的开发人员并行开发。登陆功能先开发完,测试无误后合并改分支到 master 分支,master 分支部署上线。支付功能虽然没有开发完成,但是在另一条分支上,所以产品上线和功能开发完全不受影响。这才是分布式开发的高效模式。 在 git 中,工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。而所有其他文件都属于未跟踪文件。它们既没有上次更新时的快照,也不在当前的暂存区域。初次克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,且状态为未修改。
零式的天空
2022/03/22
4920
01 . Git常用命令及方法和分支管理
Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:
iginkgo18
2020/09/27
5630
01 . Git常用命令及方法和分支管理
Git命令语法汇总
本文是在学习廖雪峰Git教程后对常用Git命令的使用总结,仅供在使用Git时方便查找。 一、Git简介 Git是当前最为流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源
梧雨北辰
2018/04/24
9090
Git命令语法汇总
Git常用命令
Git是一种分布式版本控制系统,可以进行多人的协作开发,基本大部分的软件开发相关的公司都会使用该软件,下边记录一些常用的命令
芝士就是菜
2024/07/14
1401
Git常用命令
Git常用命令速查表
Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。
Rookie
2018/08/13
4120
Git关键命令总结
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。(个人体会:其实是把暂存区的版本还原到最近一次提交后的版本库的版本,相当于清空了readme.txt未提交的修改,暂存区现在不存在这个待提交修改,但工作区的文件不会受影响,可以再次add将该修改放到暂存区,也可以使用git checkout -- readme.txt将工作区的文件撤回到最近版本的状态
梦飞
2022/06/23
5870
Git关键命令总结
相关推荐
Git常用命令速查手册
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档