@JunQiu
2018-09-18T21:22:25.000000Z
字数 1700
阅读 1423
summary_2018/08
git
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
#
# modified: lib/simplegit.rb
// 存储工作区和暂存区的修改
$ git status
# On branch master
nothing to commit, working directory clean
// 查看stash:git stash list
// 恢复stash、压栈式,数字最小的最近
git stash apply //最近
git stash apply stash@{2}
Tips:若与stash后的commit有冲突,会提示并保存两者
// 暂存区文件被放回工作区(???但是我测试好像并不会,你们可以试试。。)
git stash apply命令时带上一个--index的选项来告诉命令重新应用被暂存的变更。
// 删除stash
运行 git stash drop,加上移除的储藏的名字
git stash pop来重新应用储藏,同时立刻将其从堆栈中移走。
Tips:如果开发的时候发现bug,需要先修改bug,可以stash一下,虽然也可以另开分支,但是对于接下来开发任务不利(若bug与接下来的任务有关),stash可以提前更正,以免做无用功。
// 如下
$ git checkout mywork
// 把你的"mywork"分支里的每个提交(commit)取消掉,并且把它们临时保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把"mywork"分支更新到最新的"origin"分支,最后把保存的这些补丁应用到"mywork"分支上。
$ git rebase origin
// 冲突解决
这种情况,Git会停止rebase并会让你去解决冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index),然后,你无需执行 git-commit,只要执行:
$ git rebase --continue
// --abort参数来终止rebase的行动,并且"mywork"分支会回到rebase开始前的状态。
$ git rebase --abort
// 默认情况下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。(并记录到.git/FETCH_HEAD文件中 )
git fetch <远程主机名> <分支名>
// 拉取某个分支并在本地建立对应的分支
git fetch <远程主机名> <分支名>:local branch
// 比较
git diff local branch
// merge
git merge local branch
// 删除分支
git branch -d local branch