可以用命令git add -i 显示出所有add进index的索引号,在下面也会显示出一些相应的命令,按3就可以进入revert模式,然后按需要revert的编号,最后回车即可移出add。。。
此外,还有许多摘要选项可以用,比如 --stat,仅简要的显示 文件 增改行数统计,每个提交都列出了修改过的文件,以及其中添加和移除的行数,并在最后列出所有增减行数小计。
但是这样git会发现很多的改变,事实上是不需要提交的。通过下面的配置可以让git忽略这种情况
git config core.filemode fal
8.git revert和git reset的区别
git revert 是撤销某次操作,此次操作之前的commit都会被保留
git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区
具体一个例子,假设有三个commit, git st:
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
当执行git revert HEAD~1时, commit2被撤销了
git log可以看到:
commit1:add test1.c
commit3:add test3.c
git status 没有任何变化
如果换做执行git reset --soft(默认) HEAD~1后,运行git log
commit2: add test2.c
commit1: add test1.c
运行git status, 则test3.c处于暂存区,准备提交。
如果换做执行git reset --hard HEAD~1后,
显示:HEAD is now at commit2,运行git log
commit2: add test2.c
commit1: add test1.c
运行git st, 没有任何变化
另外:
git revert <commit log string>是撤消该commit,作为一个新的commit。
9.更改当前分支追踪的远程分支
git branch (--set-upstream-to=<upstream> | -u <upstream>) [<
branchname>]
e.g.
git branch
-u
origin/a_baseline 如果没有指定
本地分支就使用当前的分支。
10.repo upload时发现没有新建branch
git format-patch xxx(修改的上一次commit id)
repo start xxx(branch name)xxx(project)
git am xxx(刚刚生成的patch)
ok了,用repo upload做事吧。