git常用命令大全

介绍

在这里插入图片描述
这个图有疑问的地方,git fetch 并不是从remote到repository

git有4种工作区域,理解者4个工作区域对于理解git的各种命令太重要了。

Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库

工作区

程序员进行开发改动的地方,是你当前看到的,也是最新的。

平常我们开发就是拷贝远程仓库中的一个分支,基于该分支进行开发。在开发过程中就是对工作区的操作。

暂存区

.git目录下的index文件, 暂存区会记录git add添加文件的相关信息(文件名、大小、timestamp…),不保存文件实体, 通过id指向每个文件实体。可以使用git status查看暂存区的状态。暂存区标记了你当前工作区中,哪些内容是被git管理的。

当你完成某个需求或功能后需要提交到远程仓库,那么第一步就是通过git add先提交到暂存区,被git管理。

本地仓库

保存了对象被提交 过的各个版本,比起工作区和暂存区的内容,它要更旧一些。

git commit后同步index的目录树到本地仓库,方便从下一步通过git push同步本地仓库与远程仓库的同步。

远程仓库

远程仓库的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因此它可能与本地仓库同步,也可能不同步,但是它的内容是最旧的。

小结

  1. 任何对象都是在工作区中诞生和被修改;
  2. 任何修改都是从进入index区才开始被版本控制;
  3. 只有把修改提交到本地仓库,该修改才能在仓库中留下痕迹;
  4. 与协作者分享本地的修改,可以把它们push到远程仓库来共享。

创建版本库

命令解释
git clone url克隆远程版本库
git init初始化本地版本库

add

add主要将工作区的内容提交到暂存区

命令解释
git add .将工作区的所有改动提交到暂存区
git add <dir-name>将指定目录的修改提交到暂存区,包括子目录
git add <file-name>将指定文件的修改提交到暂存区

commit

修改和提交

查看状态
git status 

查看变更内容
git diff 

查看提交历史

git log 查看提交历史
git log -p <file> 查看指定文件的提交历史

撤销

git reset --hard HEAD

创建

命令介绍
git branch <branch-name>在本地新建一个分支
git checkout <branch-name>切换到你的新分支
git checkout -b <branch-name>创建并切换到新分支
git push origin <branch-name>将新分支发布在github上

删除

命令介绍
git branch -d <branch-name>在本地删除一个分支
git push origin :<branch-name>(分支名前的冒号代表删除) 在github远程端删除一个分支:

远程

命令介绍
git remote -v查看远程仓库
git remote update origin --prune刷新远程仓库分支
git remote update origin -p
git remote rm origin删除远程仓库(解除与远程仓库的关联)
git remote add origin添加远程仓库

合并

合并分支 git merge 分支名
如果当前分支为master,将bugfix的分支合并到masterWie
git merge bugfix

<<<<<<< HEAD
这个是目前版本的内容
=======
这个是dev分支的内容
>>>>>>> dev

如下为在dev分支上增加了内容

<<<<<<< HEAD
=======
这个是dev分支的内容
>>>>>>> dev

分支

命令解释
git branch查看本地分支
git branch -r查看远程分支
git branch -a查看所有分支

放弃修改

放弃本地所有修改 git checkout .

回退

git reset --hard a0fvf8

标签

命令解释
git tag列出所有tag
git tag tagName新建一个tag在当前commit
git tag -d tagName删除本地tag
git show tagName查看tag信息
git checkout tagName切换tag
git push origin tagName推送tag到远程分支

其他

当我们和别人协同合作,别人提交代码后,我们一般使用如下命令
将远程master分支与workspace的当前分支合并

git pull origin master

等同于如下操作

# 取回远程代码的更新
git fetch origin
# 将取回的更新和workspace的代码合并
git merge origin/master

所以git pull = git fetch + git merge

fetch用法如下,默认情况下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名

git fetch <远程主机名> <分支名>

参考博客

[1]https://www.cnblogs.com/Gxiaopan/p/6714539.html
git-查看远程分支、本地分支、创建分支
[2]https://www.cnblogs.com/yongdaimi/p/7600052.html
git merge 命令
[3]https://www.cnblogs.com/ShaYeBlog/p/4973507.html
常用命令
[4]https://blog.csdn.net/u014346301/article/details/53742679
好文
[5]https://my.oschina.net/u/3728792/blog/3039232
[6]https://www.toutiao.com/i6641853584910582279/
[7]https://juejin.im/post/5abef8356fb9a028df22bd78
[8]http://www.ruanyifeng.com/blog/2014/06/git_remote.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java识堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值