git常用命令:
1. 用户配置:
git config --global user.name "xxx"
git config --global user.email xxx@163.com
2. 查看某个命令文档:
git help <command>
git <command> -h
git <command> --help
3. 仓库操作:
创建代码目录后,初始化、生成.git文件(若该文件隐藏,则使用ls -ah):git init
下载代码:git clone url
查看本地分支修改状态:git status
创建SSH Key: ssh-keygen -t rsa -C "xxx@163.com"
4. 把文件添加add和提交commit到版本库:
查看修改内容:git diff //全部查看;git diff xx.c //查看某个文件
添加要提交的某个文件:git add xx.c
添加当前本地仓库所有修改变化:git add -A
提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件:git add .
提交被修改(modified)和被删除(deleted)文件,不包括新文件(new):git add -u
添加commit:git commit -s
重新修改代码后修改commit: git commit --amend
提交:git commit -m "说明"
5. 查看远程分支,远程分支一般会用红色标示出来:git branch -a
6. 创建本地分支,并切换到本地分支上,同时将本地分支和远程分支进行关联:
git checkout -b 本地分支 origin/远程分支名
7.版本控制:
查看提交历史:git log、git log --oneline、git log --pretty=oneline
查看每一次修改历史: git reflog
回退到当前版本,HEAD指向当前版本: git reset --hard HEAD
回退到上一个版本: git reset --hard HEAD^
回退到上两个版本:git reset --hard HEAD~2
恢复到指定版本:git reset --hard commit-id
8. 对某个文件的操作:
撤销某个文件的修改:git checkout test.txt
丢弃暂存区的修改(若已提交,则回退): git reset HEAD test.txt
删除文件:git rm test.txt
9. 提交代码:
将本地内容推送到远程仓库(第一次):git push -u origin master
将本地内容推送到远程仓库(之后):git push origin master
查看远程仓库信息:git remote -v
repo提交代码:git push repo HEAD:refs/for/master(或分支名)
git提交代码:git push origin HEAD:refs/for/master(或分支名)
10. 缓存修改:
暂存本地修改:git stash
恢复:git stash apply
11. 应用patch 和 diff
保存本地修改到diff文件:git diff (可加某个文件名) > xx.diff、git diff 【commit1】【commit2】 > 【diff文件名】
把提交的commit保存成.patch文件:git format-patch -1(n)
某两个commit之间的patch打成.patch文件:git format-patch 【commit id1】..【commit id 2】
检查patch/diff是否能正常打入:
git apply --check 【path/to/xxx.patch】
git apply --check 【path/to/xxx.diff】
打入patch/diff:
git apply 【path/to/xxx.patch】
git apply 【path/to/xxx.diff】
或者
git am 【path/to/xxx.patch】
12. 解决冲突:
1) 此时需要解决冲突: 1、首先使用 以下命令行,自动合入 patch 中不冲突的代码改动,同时保留冲突的部分:git apply --reject 0001-draft-patch.patch
2) git status后解决有.rej后缀的文件冲突:*.rej 文件内容逐个手动解决冲突,然后删除这些 *.rej 文件,然后git add .
3) 接着执行git am --resolved或者git am --continue
13. 更新本地代码:
git fetch、git rebase origin/branch名或者git rebase repo/branch名;
git pull;
14. 合并多个 Commit
[Git] 两种方法合并多个commit为一个_Spade_的博客-CSDN博客_git多个commit合并一个
常见问题Q&A:
1. 如何修改提交commit的作者
git commit --amend --author='account <account@xxx.com>'
2. 提交记录没有change-id:
检查仓储 .git/hooks 下面是否有 commit-msg 文件,如果没有可以到下面的地址下载,或者拷贝一个commit-msg文件到.git/hooks下,然后重新git commit --amend即可。
http://review.cyanogenmod.org/tools/hooks/commit-msg
https://gerrit-review.googlesource.com/tools/hooks/commit-msg
添加后,每次执行git commit 都会自动在git log里面生成 Change-Id,用于gerrit code review。
注意:下载commit-msg需要设置执行权限:#chmod a+x .git/hook/commit-msg