git常用命令大全
Posted wx6289ced28e34b
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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同步本地仓库与远程仓库的同步。
远程仓库
远程仓库的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因此它可能与本地仓库同步,也可能不同步,但是它的内容是最旧的。
小结
- 任何对象都是在工作区中诞生和被修改;
- 任何修改都是从进入index区才开始被版本控制;
- 只有把修改提交到本地仓库,该修改才能在仓库中留下痕迹;
- 与协作者分享本地的修改,可以把它们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 <远程主机名> <分支名>
参考博客
git merge 命令
[6]https://www.toutiao.com/i6641853584910582279/
[8]http://www.ruanyifeng.com/blog/2014/06/git_remote.html
以上是关于git常用命令大全的主要内容,如果未能解决你的问题,请参考以下文章