提交三部曲:
git add . 添加到内存
git commit -m “message 说明信息” 从内存提交到本地库
git push 将本地库的修改文件推到远程库
常见问题:
- 版本冲突(本地代码不是最新版):先拉在推
git pull
git push - 多次commit如何合并
git reabse 合并多次 git commit,
然后 push
其他命令:
命令 | 作用 |
---|---|
git log | 查看历史 |
git status | 查看当前状态 |
git branch -a | 查看所分支 |
git checkout <分支> | 切换分支 |
git pull | 将远程库的修改拉到本地库合并 |
git clone 地址 | 把远程程序完整克隆到本地,产生一个本地库 |
git br -m [old_br] [new_br] | 分支重命名 |
后悔药 [ 版本回退 ]:
Git项目有3个区域:工作区、暂存区和Git仓库(分成本地仓库和远程仓库)。如上图:
1.在未暂存前,撤销本地修改
即:在没有暂存之前(没有执行git add命令),
git diff 我们可以通过以下命令查看本地修改
git checkout -- . 一次性撤销所有本地修改,(!!!该命令不可二次“反悔”,本地操作一旦撤销,将无法通过Git找回)
也可以指定文件(. 换成指定的文件名)
2.在暂存之后,撤销暂存区的修改
即:执行了 git add . ,执行 git diff 不会有任何输出
git diff --staged 查看缓存区的修改
git reset . 如果这时我们想要一次性撤销暂存区的全部修改
3.提交到本地仓库之后(但未推送到远程仓库),撤销本次提交
即:执行了 git commit -m “xxx”
方法一 :
git log 查看日志
git checkout "commit之前版本号" 撤销了本次次提交
方法二 :
git reset --hard HEAD~1 重置之前的提交
!!! 该命令是可以二次“反悔”的,具体步骤如下:
1.找到被重置的提交 git reflog,发现是 f8651ff
2.使用reset回到该提交 git reset --hard f8651ff
4.修改提交
即:执行了 git add
git commit -m “提交信息”
场景1: 可以通过以下命令“反悔”(添加遗漏文件,又不重新生成新的Commit ID):
git add "xxx文件"
git commit --amend
场景2: 没有遗漏的文件,只是提交信息有误,可以使用以下命令进行修补:
git commit --amend -m "add test container"
5.撤销提交历史中的某一次指定的提交
第3小结提到回退最近一次提交的方法(使用git reset命令),该方法只能针对连续的提交;
如果只想撤销提交历史中的某一次提交,可以使用以下命令撤销该次提交(将提交的内容“反操作”),
并生成一个新的提交在最前面:
git revert 版本号 (该次提交将标签的target属性由"_self"改回了"_blank"。)
6.合并出现冲突时,撤销合并操作
两个分支改了同一个文件的同一个地方,合并时将出现冲突,如果不想解决冲突,想撤销这个合并,可以使用以下命令:
git merge --abort
7.暂存区的文件加多了,想移除,又不想删掉本地的文件
git rm --cached "XXX文件
8.分支重命名
git br -m [old_br] [new_br]
9.撤销变基操作
将 rebase_test 分支的修改变基到master上:
git co rebase_test
git rebase master