01git commit & reset
git commit -m “aabbsia”
git commit —amend //新增有时递交过一场历史记录多于,又修正了一场<大前提是现阶段最终一场递交没merge>,能采用 git commit –amend. 维持旧有的Change-Id,git commit –amend –no-edit
会留存那次的递交重要信息
git push origin HEAD:refs/for/master 再次push到控制台伺服器继续执行commit后,还没继续执行push时,想撤消此次的commit,该咋办?
git reset –soft HEAD^这种就获得成功撤消了commit,假如想连着add也撤消不然,–soft改成–hard(删掉组织工作内部空间的更动标识符)。02git restore
git restore 撤消文件组织工作区的修正
命令:git restore –worktree
举例:git restore –worktree test2.txtgit restore 撤消组织工作区所有文件的修正
命令:git restore .git restore 撤消暂存区的修正,将文件恢复到组织工作区去
命令:git restore –staged
举例:git restore –staged test2.txtgit restore 将组织工作区内容切换到上个 commit 版本
命令:git restore –source=HEAD~1 .03git restore 将组织工作区内容切换到某个版本库去
命令:git restore –source= .
举例:git restore –source=6271090 .04git clean
首先确认要删掉的文件
git clean -fd -n假如以上命令给出的文件列表是你想删掉的, 那么接下来继续执行
其中: -f表示文件 ,-d表示目录,
假如还要删掉.gitignore中的文件那么再加上-x (-x对我来说没用)
假如git submodule中也存在需要删掉的文件那么需要再加个-f, 变成git clean -dff连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
05git reset
git撤回push到远程的标识符
Git 恢复本地误删的文件误删了文件夹“../Server”。
git reset HEAD ../Server
git checkout ../Server06git reset 撤消commit
git reset 分为三种:软 –soft,中 —mixed,硬 –hard 对应着三种回滚的程度,程度越硬,回滚的越“狠”
–soft 已 add,但尚未 commit
–mixed(git reset 的默认设定,能省略不写),文件会回退到未 add(未暂存)的状态
–hard 硬核,彻底,会彻底返回到回退前的版本状态,了无痕迹
HEAD^ 表示上一个版本,即上一场的commit,也能写成HEAD~1–mixed
意思是:不删掉组织工作内部空间更动标识符,撤消commit,并且撤消git add . 操作
这个为默认参数,git reset –mixed HEAD^ 和 git reset HEAD^ 效果是一样的。–soft
git reset HEAD // 假如后面什么都不跟不然 就是上一场add 里面的全部撤消了
git reset HEAD XXX/XXX/XXX.java // 就是对某个文件进行撤消了git reset –soft head 会撤消本次commit,但是修改的文件还保存着,回退后能直接再次commit
git reset –soft HEAD^
不删掉组织工作内部空间更动标识符,撤消commit,不撤消git add .
–hardgit reset –hard HEAD删掉组织工作内部空间更动标识符,撤消commit,撤消git add .
注意完成这个操作后,就恢复到了上一场的commit状态。07git rebase
git rebase -i HEAD~2
对最近的两次commit进行rebase操作
将需要合并的commit 内容前面的pick改成squash
保存退出
再将标识符push -f到控制台即可。
https://blog.csdn.net/u013276277/article/details/82470177
08git pull –rebase
git pull 的作用是将远程库中的更改标识符合并到现阶段分支中,默认为:git fetch + git merge
git pull –rebase 加上–rebase参数的原因是,在多人开发中,有多个merge commit,假如不加该参数,则有多个历史递交线,而它的作用,就相当于把分叉的递交线中的一条,每一场递交都捡选出来, 在另一条递交线上递交。最终也形成一条单一的递交线。简单来讲就是正常的解决冲突过程是
1,git add .
2,git commit -m “…”
3,git push时因为本地仓库标识符与远程仓标识符有冲突,所以接下来
4,git pull拉取远程标识符,而冲突需要手动解决
5,解决好后再次进行git add . git commit -m”..” git push
而git pull 这一步假如加上了 –rebase的选项,那么第5步操作将变成如下
git add .
git rebase –continue
git push
所以git pull –rebase用在合并标识符的时候其作用就是在一个随机创建的分支上处理冲突,避免了直接污染原来的分区09Git 分支
101.删掉本地分支
先切换到别的分支: git checkout dev20180927
git branch -d 分支名。 (正常删掉)
git branch -D 分支名。 (假如要删掉的分支还没合并到master分支,那就需要继续执行这一条)
112.删掉远程分支
有必要的情况下,删掉远程分支(慎用)
git push origin –delete 分支名 (删掉远程分支,并推送)
12问题1:
在删掉远程分支的时候,有可能会提示。
remote ref does not exist。
原因是远程分支已经被删掉,但是我们采用git branch -a 查看的时候,仍然会看到那个分支,这时候就用到下面的命令了
git fetch -p origin// 先清除远程分支的本地缓存