1.git初始化
配置文件在/etc/gitconfig, ~/.gitconfig, .git/config, 后面的会覆盖前面的
/etc/gitconfig 对应选项 --system
~/.gitconfig 对应选项 --global
//让系统直到是谁在与git交互
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
//配置自己的身份,生成自己的sshkey并配置到git服务器端
ssh-keygen -t rsa -C "mutouyihao@163.com" //git 上自己注册的邮箱
之后粘贴c://Users/<用户名>/.ssh/id_rsa.pub的文件内容拷贝到服务器端
//初始化方式
git init
git clone xxx
mkdir xx-init
cd xx-init
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin http://gitlab.xx.com/xx/xx-init.git
git push -u origin master
2.常用命令
git add
git status
git diff
git commit [-m -a ]
git rm [-f --cached] : cached 不删除本地文件
git mv
git log -p -2: 用 -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新
git reset HEAD benchmarks.rb: 添加暂存后撤销
git pull 相当于 svn update 本地文件删除,恢复git ls-files -d | xargs -i git checkout {}
git reset xxFile : git add 后的撤销
git show 提交id: 显示提交文件内容
3. 实用
忽略某些文件
工程下创建.gitignore,
# 此为注释 – 将被 Git 忽略
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
分支查看
查看远程服务器有哪些分支: git branch -r
查看本地分支: git branch
查看所有分支: git branch -a
查看本地和远程分支对应关系:git branch -vv
分支操作
检出远程分支到本机: git checkout -b [本机分支] [远程分支] // -b表示本地同时创建此分支
切换到目标分支:git checkout 目标分支
提交本地分支代码到目标分支: git push origin 本地分支:远程分支
删除远程分支: git push origin :远程分支 (把空提交到远程目标分支)
删除本地分支: git branch -d 本地分支
撤销本地分支提交:git revert commit-id
本地分支回退到历史: git log; git reset --hard 提交历史版本id
远程分支回退到历史: git reset --hard 历史版本id; git push -f origin 本地分支:远程分支
合并分支:git merge 目标分支 (把目标分支代码合并到当前分支)
merge回滚: git merge --abort
其它命令
查看当前git配置:git config --list