git 使用问题记录

从git管理中删除

git rm --cached --force app/app/app.iml

修改提交用户名和email

git commit --amend --author='Your Name you@example.com'

批量修改修改所有commit的Author邮箱

git filter-branch --env-filter 'export GIT_AUTHOR_EMAIL=new_author_email' --
除了GIT_AUTHOR_EMAIL, 还有GIT_AUTHOR_NAME, GIT_COMMITTER_EMAIL, GIT_COMMITTER_NAME等参数可以修改.

push不上去,提示unpacker error

使用带参数的git push --no-thin命令成功。
--[no-]thin
These options are passed to git-send-pack(1). A thin transfer significantly reduces the amount of sent data when the sender and receiver share many of the same objects in common. The default is --thin.

打patch

通常打patch 的流程:

  1. $ git am PATCH 如果有冲突不能直接合入需要继续执行下面的操作
  2. $ git apply PATCH --reject (注:会在有冲突的文件目录下面生成相应的.rej文件)
  3. $ edit edit dit (注:根据.rej文件手动解决所有冲突,即参照.rej文件手动修改冲突的文件)
  4. $ git add FIXED_FILES
  5. $ git am --resolved

带目录参数 --directory=***

指定合入patch 的目录
git am 0001-app-add-camera-filter.patch --directory=packages/apps/SnapdragonCamera/

-k 参数

git am -k **.patch 会保留patch 中形如[*] 括号和括号内的信息,比如[BugFix]Fix NPE,不带-k 参数的话打入patch 后commit message 只有Fix NPE。

Comments
Write a Comment