git命令操作手册

===

配置 git 免密码登录

  • ssh-keygen -t rsa -C "xxxx@xxxx.com" -f ~/.ssh/oschina
  • cat ~/.ssh/oschina.pub
  • 复制 public key 的内容并访问http://git.oschina.net/keys,public key 添加到自己的公钥仓库
  • 创建 ~/.ssh/config 文件,增加以下内容
host git.oschina.net
 HostName git.oschina.net
 IdentityFile ~/.ssh/oschina
 User git
  • 使用 ssh -T git@git.oschina.net 验证是否已经免密码管理 git 仓库, 出现 Welcome to Git@OSC, your username! 表示成功

git常用命令

基本配置

1.查看当前配置

git config --list

2.设置默认提交后显示的用户名

git config --global user.name 'tony'
git config --global user.email 'tony@qq.com'

远程仓库操作

1.查看远程仓库

git remote -v

2.添加远程仓库

git remote add <depot-name> <remote-url>

3.删除远程仓库

git remote rm <depot-name>

4.修改远程仓库url

git remote set-url --push <depot-name> <new-url>

5.重命名远程仓库

git remote rename <old-depot-name> <new-depot-name>

6.冲远程仓库抓取数据

git fetch <depot-name>

分支操作

1.查看远程分支

git branch -r

2.查看本地分支

git branch

3.创建分支

git branch <branch-name>

4.修改分支名称

git branch -m <old-branch-name> <new-branch-name>

5.将分支推送到远程服务器

git push origin <branch-name>

6.切换分支

git checkout <branch-name>

7.删除本地分支

git branch --delete <branch-name>

8.删除远程分支

git push origin :<branch-name>

9.查看几次commit的区别

git diff

10.查看当前分支状态

git status

11.合并分支到master

git merge <branch-name>
如果有冲突,修改冲突的文件,然后git add ,再git commit

commit操作

1.修改上一次提交的comment

git commit --amend

2.撤销已git add的文件

git reset HEAD

3.撤销对文件的修改

git checkout -- <file>

4.git撤销commit

git log查看日志,找到要回退的commit的hash值
git reset --hard <commit_hash_id>

5.回退上一个版本

git reset --hard HEAD^(上一次是HEAD^, 上上次是HEAD^^, 也可写成HEAD~2,以此类推)
注: --hard 表示放弃所有本地改动

6.清除所有未跟踪文件,包括纳入ignored的文件

git clean -dxf

7.删除文件,移动文件

git rm <filename>
git mv <old-filename> <new-filename>

出现 以下问题的解决办法:

  1. git commit时出现 fatal: cannot do a partial commit during a merge. 错误.
git commit -i <file>

git 分支操作例子

演示创建分支test-branch,修改本地分支,提交分支远程,最后合并分支变更到指定的分支

1.创建分支 test-branch

git checkout -b test-branch

2.修改本地分支,创建一个新的文件 test.txt并提交修改

echo "test" > test.txt
git commit -a -m "add text.txt"

3.提交增加的分支到远程

​​‌‌​​​‌‌​‌​​‌‌‍​‌​‌‌‌​​‌‌‌‌​‌​‍​‌​​‌​​​‌​​​‌‌​‍​‌​‌‌​​​‌‌​​​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​‌‌​​​‌‌‌​​​‌​‌‍​​‌‌‌‌‌‌‌‌​​‌‌‍‌​​‌‌​​​‍‌​​‌​‌‌​‍‌​​​‌​‌‌‍‌‌​‌​​‌​‍‌​​‌‌‌​​‍‌​​‌​​​​‍‌​​‌​​‌​‍‌​​‌​​‌​‍‌​​‌‌‌‌​‍‌​​‌​​​‌‍‌​​‌‌​‌‌‍‌​​‌‌​​​‍‌​​‌​‌‌​‍‌​​​‌​‌‌‍​‌​‌​‌‌‌​​​​​‌​‍​‌‌​​​‌​​​‌‌​‌‌‍​​‌‌​‌‌​​‌‌​​‌​‍​‌‌​​​​‌​‌​​​‌‌‍​​‌‌‌​‌‌​‌‌​‌​​‍​‌​‌‌‌​​‌‌‌​​‌‌‍​​‌‌‌‌‌‌‌‌​​‌​‍​​​​​​​​‌‌‌‌​​‌‌‍​​​‌​‌​‌‌​​‌‌‌​‍‌​​​‌​‌‌‍‌​​‌​​​​‍‌​​‌​​​‌‍‌​​​​‌‌​‍​‌‌​​​‌​‌‌‌​​​‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌‌​‍‌‌​​​‌‌​‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​​‌​‌‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​​​‌‌‌‍​‌​‌‌​‌‌‌‌​​‌​​‍​‌‌​​​​‌​‌​​​‌‌‍​​​​​​​​‌‌‌‌​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌​​​‌‌​​‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​​‌‌​‌‍‌​​‌​​​​‍‌​​​‌​​​‍‌​​​‌‌​​‍‌​​‌‌​‌​‍‌​​‌‌‌‌​‍‌‌​‌​​​‌‍‌​​‌‌‌​​‍‌​​‌​​​​‍‌​​‌​​‌​‍‌​‌​​​‌‌‍‌​​‌​​‌‌‍‌​​‌​‌‌​‍‌​​‌​​​‌‍‌​​​‌​‌​‍‌​​​​‌‌‌‍‌​‌​​​‌‌‍‌​​‌‌​​​‍‌​​‌​‌‌​‍‌​​​‌​‌‌‍‌‌​‌​​‌​‍‌​​‌‌‌​​‍‌​​‌​​​​‍‌​​‌​​‌​‍‌​​‌​​‌​‍‌​​‌‌‌‌​‍‌​​‌​​​‌‍‌​​‌‌​‌‌‍‌‌​‌​​​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​‌​​‌​‍‌​​‌​​‌‌

git push origin test-branch

4.合并 test-branch 的内容到 master

git checkout master
git merge test-branch
git push