Git使用技巧

231 阅读2分钟

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 stashgit 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 pullgit 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分支

参考:
blog.csdn.net/ustccw/arti…
blog.csdn.net/daguanjia11…
www.cnblogs.com/tocy/p/git-…