最新博客链接:https://feiffy.cc/Git
日常用到的GIT的一些操作,记下来,以备参考。
删除文件
git rm filename
git commit -m "remove filename"
如果删错了,可以恢复为版本库里最新的版本
git checkout -- filename
修改操作
隐藏临时修改
正在做一个功能的时候,突然来了bug修复任务,这时就需要先把当前分支上未提交的修改隐藏,然后切换到bug分支上修复bug,完成后提交并合并到原来的分支,再删除bug分支。
git stash
git checkout -b bugs
git commit -m "fix ...bugs"
git checkout master
git merge bugs
git branch -d bugs
git stash pop
注意,多次git stash操作会形成stash list,其名字按照stash@{0},stash@{1}命名,其中stash@{0}在最上面,git stash pop
会恢复最上面的stash并删除该记录,然后原来的stash@{1}就变成了stash@{0},其结构类似栈。
git stash apply
和git stash pop
都可用来恢复stash的内容,区别在于前者不会删除stash记录,而后者会删除已经恢复的stash记录。
git stash clear
清空所有的stash修改,如果你已经搞不清楚一团乱麻了,就清空它重头再来吧。
git stash list
查看 stash list
git stash show
查看最近一次stash即 stash@{0}保存的修改。
查看工作区修改(unstaged)
git status
比较简单,仅仅是列出了修改过的文件
git diff
查看具体修改的代码行
查看暂存区修改(staged)
git diff --staged
撤销工作区修改
git checkout --filename
这个操作一旦执行,就丢弃了所有未add的修改内容。
撤销暂存区修改
git reset HEAD .
git reset HEAD -- filename
即把暂存区的修改内容(staged)放回工作区(unstaged)中
分支操作
获取远程新分支到本地
git fetch
git checkout -q remote_branch
创建并切换到本地新分支(基于当前分支)
git checkout -b new_local_branch
一般的,凡是不是当前的工作的任务,比如bug修复或测试某些功能,我都会重新创建一个分支进行操作,因为创建新分支很快很方便也很安全,做完临时性的修改工作,再提交合并到原来的分支上,再删除创建的临时分支,简直完美。
创建本地新分支并推送到远程
git checkout -b new_local_branch
git push origin new_local_branch:remote_branch
远程分支名remote_branch随便怎么起,而且可以起多个,比如本地分支new_local_branch可以推动到远程test1,test2分支上,注意,这其实是在创建远程新分支,所以不能是已存在的远程分支名。
查看所有分支
查看所有远程分支:git branch -a
查看所有本地分支:git branch
删除分支
删除远程分支:git push origin :remote_branch
删除本地分支:git branch -d local_branch