乐趣区

Git 入门(二)— 常用指令和问题处理

关于 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

退出移动版