关于Add与Commit
git add .
将所有修改提交到stage 缓存区
git commit
将缓存区的更改提交到本地仓库
那么,问题来了:
- 如何取消
commit
,也就是撤销提交到本地仓库的操作?
- 如何取消
add
,也就是撤销提交到缓存区的操作?
- 如何取消更改,也就是说,修改了文件或者增加了文件或者删除了文件这时候怎么撤销?
放弃文件修改(修改了文件,未执行 git add
命令)
放弃单个文件的修改 git checkout xxx
xxx是文件path
放弃所有文件更改git checkout .
放弃文件的增加(新建了文件、为add
)
放弃单个文件的新增rm xxx
,其实就是cmd删除文件命令
放弃所有新增的文件git clean xdf
,删除所有新增的文件(不包括已经添加到缓存区的)。
撤销提交到缓存区(执行了git add .
命令,未commit
)
撤销单个文件git reset HEAD xxx
,xxx是文件名
撤销所有文件git reset HEAD .
撤销提交到本地仓库(即取消git commit
)
说明,执行了git commit
之后,相当于本地仓库已经更新了一个版本,就等待push
了,那么要撤销commit
也就是要回退版本,这种情形就是要将本地仓库回退1
个版本。
git reset --hard HEAD^
// --hard 是参数,^是上一版本,
// 也可以用~1、~2,表示回退多少个版本
--soft / --hard / --mixed
三个参数的说明:
--soft
:暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,换言之,add
和commit
的内容全部都会变成未add
的状态。
--mixed
:保留缓存区的内容,已提交的内容回到缓存区。
--hard
:缓存区的内容和已提交的内容都会被清空。(慎用!)
关于创建分支
git checkout -b xxx
创建并切换到xxx
分支,其实,这是在当前分支的基础上创建xxx
分支,并切换到xxx
分支。
也可以指定以其他分支为基础来创建:git checkout -b xxx master
。
涉及的问题:
如果当前所在分支有未`add`到缓存区或者未`commit`的更改时是不能切换分支的,
也就是说上述的创建并切换到分支是不会执行的。
因此,当前所在分支要`commit`后才能切换分支。
合并其他分支
git merge xxx
将xxx分支合并到当前分支。
关于删除分支
删除本地分支git branch -D xxx
注意大写D
删除远程的分支git push orgin -d xxx
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。