git clone https://git.gitorious.org/libvirt/libvirt
1、下载master源码:git clone ssh://swx433@172.11.1.68:29418/open-source
2、新建brank分支:git branch StoLiveMig
3、切换到分支:git checkout StoLiveMig
3、coding
4、git master:git checkout master
5、git fetch
6、git pull
7、切换到分支:git checkout StoLiveMig
8、将master最新的源码同步到分支:git rebase master(这一步可能需要解决冲突)
9、git status 查看修改的文件。
10、cd 代码路径, git add 新增文件
11、git commit -as 上传代码,(format-patch会每个commit生成一个patch)。填写主题,会成为patch的名称。
12、git format-patch -2 --subject-prefix="PATCH" --cover-letter 将修改做成patch集 功能、 说明。
rebase
1、git log 找到第几个提交的patch
2、git rebase -i HEAD~2 回退到第几个patch(2为向前推移数),将commit内容改为"e"状态。
3、vi code 修改code
4、git commit --amend 重新commit(可以修改commit的信息和内容)
git commit --amend StoLiveMig/intf_sto.c StoLiveMig/intf_sto.h 修改文件。
5、git rebase --continue 回到当前commit内容
打patch
1、git config --global core.autocrlf false (window关闭格式转换)
2、git apply --check patch_name
3、git am (--ignore-whitespace屏蔽差异) patch_name
4、git log --online
git checkout 或者 git reset --hard 2df3c1b043add54cd2511e5eacb34052e0c2dd65 恢复代码
查看maintainer信息:
git blame filename.c 可以看到具体某一行是的提交信息。
git log bd5573a6 -p:获取具体的提交人信息。