1.新增一些文件,没有 git add 到暂存区,想放弃修改
rm -rf filename: 单文件/文件夹git clean -xdf: 所有文件
删除新增的文件,如果文件已经 git add 到暂存区,并不会删除
git clean -xdff: 所有文件/文件夹
删除新增的文件,如果文件已经 git add 到暂存区,并不会删除
2.修改一些文件,没有 git add 到暂存区,想放弃修改
git checkout -- filename: 单个文件/文件夹git checkout .: 所有文件/文件夹
3.git add 到暂存区,将文件移出暂存区
git reset filename: 单个文件/文件夹git reset .: 所有文件/文件夹
4.git add 到暂存区,想放弃修改
git reset HEAD filename: 单个文件/文件夹git reset HEAD .: 所有文件/文件夹
5.commit 提交后,想放弃修改
git reset commit_id: 撤销 commit,同时保留 commit 修改
撤销之后,所有 commit 的修改还在工作区
commit_id 是想要回到的那个节点,可以通过 git log 查看,可以只选前6位
git reset --hard commit_id: 撤销 commit, 同时删除 commit 修改
【高危操作】撤销之后,你所做的已经 commit 的修改将会清除,仍在工作区/暂存区的代码也将会清除
6.保存当前修改,进行其它操作,完事后恢复之前修改
git stash或git stash save 'message...这里是注释': 保存当前变更
会把工作区和暂存区域所有未 commit 的修改都保存起来
git stash list: 显示所有保存进度列表git stash pop: 恢复最近保存的进度(stash@{stash_id} stash_id 最大的),同时删除该stash
相当于一个出栈操作
git stash pop stash@{stash_id}: 恢复指定进度到工作区,同时删除该stash
stash_id 是想恢复的进度,可以通过 git stash list 查看
git stash apply: 用法与 pop 相同,只是不删除要恢复的进度,可以多次使用git stash drop stash@{stash_id}: 删除进度,不指定 stash@{stash_id} 则删除最近保存的进度git stash clear: 【高危操作】删除所有存储的进度
7.push前,pull拉取最新代码,发现冲突
方法1(推荐):强烈推荐使用git pull --rebase拉取分支最新代码,会自动变基
- 优点1:
git pull是git pull --merge简写,会在本地产生一个新的提交,乱的很 - 优点2:不会在本地产生新的提交,自动完成方法2中的两个命令的变基
方法2(不推荐):
git fetch --all: 获取远程仓库的最新信息,但不会合并或更新到当前分支git rebase origin/master: 变基,将当前分支的所有改动转移到origin/master分支最新提交前
8.本地创建并切换到远程分支
git checkout -t origin/xxx:origin/xxx 是分支名
高级用法(不常用)
1、摘取A分支的提交到B分支
git cherry-pick <commitHash>:git cherry-pick 教程
参考:
blog.csdn.net/ustccw/arti…
blog.csdn.net/daguanjia11…
www.cnblogs.com/tocy/p/git-…