1.生成Git密钥
git config –global user.name "xxxxx"
git config –global user.email "xxx@xx.xxx"
ssh-keygen -t rsa -C "xxx@xx.xxx"
接着按3个回车,在.ssh目录下得到了两个文件:id_rsa(私有秘钥)和id_rsa.pub(公有密钥)
然后把公钥添加到远程git服务器
2.git的基本命令
git clone git@XXXX.git -b branchName
git status
git add . (或者单个文件,文件夹)
git commit -m "message"
git push
git log
git branch -a
切换本地分支
git checkout branchName
远程下载分支并切换
git checkout -b branch origin/branch
创建分支
git branch branchName
git pull --rebase
修改git commit 信息
git commit --amend
3.git冲突
error: Your local changes to the following files would be overwritten by merge:
protected/config/main.php
Please, commit your changes or stash them before you can merge.
保留所做的改动
git stash
git pull
git stash pop
用代码库中的文件完全覆盖本地工作版本
git reset --hard
git pull
4.git 查看单一文件的修改记录
a. git log filename
可以看到fileName相关的commit记录
b. git log -p filenam
可以显示每次提交的diff
c. 只看某次提交中的某个文件变化,可以直接加上fileName
git show commitID filename
5.git push冲突
git pull --rebase // pull服务器最新代码
git status // 查看冲突文件
vi conflictFile // 修改冲突行。
git add conflictFile // 添加修改后的文件到缓存区
git rebase --continue // 继续rebase
git log // 如果rebase成功,表示冲突已解决,此时可以查看log
git commit --amend // 修改最后一次提交,包括文件与注释
git push # 重新push提交
6.代码回滚
git reset --hard commitID // 本地代码回滚到指定版本
git push origin HEAD --force // 强制推送到远程分支,git没有回滚记录
只回退某一次commit,git会留有revert记录
git revert commitID // 回退指定的提交
git push
7.git add之后撤销
git reset HEAD 如果后面什么都不加就是撤销上一次add的全部内容
git reset HEAD XXX/fileName 对单个文件进行撤销
8.git merge
git merge branchName
有冲突就解冲突
git checkout FILE --ours{--theirs} // 二进制文件解冲突,ours保留本分支的,theirs保留merge过来的分支
git add 解冲突后的文件
git commit
git push
merge后遗留.orig文件,删除方式:
find . -name '*.orig' -delete