目录
4、提交—git add / git commit / git push
7、撤销回复—git checkout / git reset / git revert
一、git 有三个分区
- 工作区:就是你在电脑里能看到的目录(代码编辑区)。
- 暂存区:一般存放在 ".git目录下" 下的index文件中(过渡层,避免误操作)。
- 版本库:工作区有一个隐藏目录.git (本地仓库,专门控制版本)。
另外还有一个远程仓库:比如GitHub上的库。
他们之间的关系如下:
二、git 基本操作
1、克隆—git clone
从远程仓库克隆代码到版本库(本地仓库)。
2、拉取—git fetch / git pull
- git fetch:将更新后的远程仓库中的代码,拉取到版本库(本地仓库)。
- git pull:将更新后的远程仓库中的代码,拉取到工作区。
3、查看—git status / git diff
- git status:查看提交的状态,查看是否有修改。
- git diff:尚未缓存的改动——具体修改的内容。
拓展
git diff
: 工作区和暂存区比较。git diff --cached
: 暂存区和 HEAD 比较。git diff HEAD
: 工作区和 HEAD 比较。git diff --word-diff
: 使用逐词比较,默认是逐行比较。
4、提交—git add / git commit / git push
- git add:将工作区文件添加到缓存区。
- git commit:将缓存区文件添加到版本区,或者将工作区文件直接添加到版本区。
- git push:将版本库文件推送到远程仓库。
5、日志—git log / git reflog
- git log:查看所有提交过的版本信息。
- git reflog:查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)。
拓展
只查看版本号和提交时的备注信息:--pretty=oneline。
6、删除—git rm
- 简单地从工作区手工删除文件:
git rm 文件名
- 删除之前修改过并且已经放到缓存区的文件:
git rm -f 文件名
- 删除缓存区,保留工作区的文件:
git rm --cached 文件名
7、撤销回复—git checkout / git reset / git revert
git checkout 既可以用来切换分支,也可以用来回复工作目录。
- 未使用 git add 缓存代码时
// 维持 HEAD 的指向不变,用暂存区文件替换工作区文件,相当于取消自上次 git add 的修改
git checkout -- 文件名
拓展
git checkout . :维持 HEAD 的指向不变,用暂存区的 “所有文件” 直接覆盖 “工作区文件”。
git checkout branch -- 文件名:维持 HEAD 的指向不变,用 “某个分支的文件” 替换暂存区和工作区中相应的文件。
git checkout HEAD 文件名 或 git checkout HEAD . :将 HEAD 指向的版本库文件同时替换暂存区和工作区文件。
但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中,对于git来讲是未知的,此时需要自己手动删除该新建的文件就好了。
- 已经使用了 git add 缓存了代码
// 删除指定文件的缓存
git reset HEAD 文件名
// 放弃所有的缓存
git reset HEAD .
用 git reset 后,本地的修改并不会消失。
- 已经用 git commit 提交了代码
已经 push 到远程仓库的 commit 不建议使用 reset 强行推送(git push -f)回复远程仓库,否则会造成其他开发人员的提交历史莫名其妙的丢失,或者其他灾难性的后果。推荐使用 git revert。
// 回退到上一个版本
git revert -n 版本号
这里可能会出现冲突,那么需要手动修改冲突的文件。
拓展
下图是 git reset 和 git revert 的区别:
8、覆盖—git commit --amend
git commit --amend
- 当我们想要对上一次的提交进行修改时,我们可以使用 git commit –amend 命令。
- git commit –amend 既可以对上次提交的内容进行修改,也可以修改提交说明。
git commit --amend 修补提交命令实际上相当于执行了以下两条命令(注:.git/COMMIT_EDITMSG 是保存上次提交的日志):
git reset ---soft HEAD^
git commit -e -F .git/COMMIT_EDITMSG
三、git 分支管理
1、查看分支—git branch
git branch
2、创建分支—git branch <name>
git branch 分支名
3、切换分支—git checkout
git checkout 分支名
git checkout 既可以用来切换分支,也可以用来回复工作目录。
4、删除分支—git branch -d
git branch -d 分支名
5、合并分支—git merge
git merge 分支名
来源:CSDN
作者:mChales...
链接:https://blog.csdn.net/mChales_Liu/article/details/104379526