git的三种文件状态
常用基本命令的使用
问题
- git clone url和 git pull有什么区别
- 本地仓库和远程仓库的区别?
- origin 代表什么?
git add
-
git add -A
: stages All -
git add .
: stages new and modified, without deleted -
git add -u
: stages modified and deleted, without new
git clone 某个版本
通过以下三步执行:
-
git clone + rep
: 先clone整个资源 -
git log
: 查看版本号 -
git checkout +版本号
:clone需要的版本
git 查看commit 更改信息
- 仅仅想看最近谁有提交,以及提交的描述
git log
- 仅仅想看最后一次的提交
git log -n 1
- 想看到最近一次提交所有更改过的文件
git log -n 1 --stat
- 想看到最近一次提交所有更改的细节
git log -n 1 --p
- 查看某个文件的修改历史
git log -p <filename>
- 查看最近两次的更改内容
git log -p -2
更改commit信息
如果git commit
后,但是还没有git push
,而又发现写错了git commit
,需要更改,则可以使用git commit --amend
来重新修改commit
信息
修改git执行的编辑器
默认情况下,安装git时会指定vi/vim作为默认编辑器,可以使用:
git config --global core.editor emacs
来更改编辑器,这里更改为emacs
撤销
如果修改了很多文件,发现修改错误了,而这个错误又无法找出来修改,但是此时还没有git add提交,那么可以使用下面的命令恢复到上一次提交的状态
git reset --hard HEAD
如果修改了文件,同时也推送到了github上,但是发现提交了错误的代码,需要回到上一次提交状态,那么可以使用下面的代码
git reset --hard HEAD^
-
如果需要回到之前提交的某个分支,可以通过下面的方法来操作
git log
: 查看要回到的分支的 commit 字段,如下所示
然后使用git reset --hard 8df0
回退即可 git add 添加 多余文件
当使用git add .
添加了多余的文件时,需要撤销git add .
,可以使用如下的撤销操作:
git statue
: 先使用该命令查看下add了哪些文件
git reset HEAD
: 如果该命令后面不跟文件的话,就是把上次add的所有文件都撤销掉
git reset HEAD + 文件1
: 表示撤销 文件1 的add 操作-
git commit 错误操作
如果不小心弄错了git add后,同时又git commit了,那么可以执行以下撤销操作:
git log
: 查看git log信息
commit xxxxxxxxxxxxxxxxxxxxxxxxxx
Merge:
Author:
Date:
然后找到执行:git reset commit_id
注意:-
git reset commit_id
:回退到上一个 提交的节点 代码还是原来你修改的,也就是说你修改 的代码不会被更改,只是清除了暂存处 -
git reset --hard commit_id
:回退到上一个commit节点, 代码也发生了改变,变成上一次的
-
如果要是 提交了以后,可以使用 git revert
还原已经提交的修改
此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交
git revert HEAD 撤销前一次 commit
git revert HEAD^ 撤销前前一次 commit
git revert commit-id (撤销指定的版本,撤销也会作为一次提交进行保存)
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。
分支合并
例如将zhangjie
分支合并到develop
分支
步骤如下:
- 先将
zhangjie
分支push到服务器 - 切换到
develop
分支,然后将develop
分支上的代码pull下来,保证本地保存有最新的develop
分支代码 - 将
zhangjie
分支合并到develop
分支 - 将
develop
分支push到服务器
这样便完成了分支合并