Git-简易指南

前言

  • 版本控制:通过文档控制documentation control,能记录任何工程项目内各个模块的改动历程,并为每次改动编上序号,以便将来查阅特定版本修订情况的系统;
  • Git:一个分布式版本控制软件,最初由林纳斯·托瓦兹Linus Torvalds创作,基于GPL协议发布;
  • GitHub:一个通过Git进行版本控制的软件源代码托管服务,使用Ruby on Rails编写而成;

在Linux上安装Git

  • Ubuntu系统:
1
$ apt-get install -y git-core
  • CentOS系统:
1
$ yum install -y git-core

四种文件状态

  • untracked:未被跟踪的文件;
  • unmodified:已被跟踪,未经过修改;
  • modified:已被修改的文件,但还没有提交保存;
  • staged:已被暂存的文件,把已修改的文件放在下次提交时要保存的清单中;

配置Git

  • 命令格式:
1
$ git config [OPTION]
  • 配置文件

    • /etc/gitconfig:系统配置,若使用git config时用--system选项,则配置该文件;
    • ~/.gitconfig:个人配置,若使用git config时用--global选项,则配置该文件;
    • .git/config:当前项目的配置,若使用git config时不使用任何选项, 则配置该文件;
  • 设置用户名:

1
$ git config --global user.name "YuXiaoCoder"
  • 设置邮箱地址:
1
$ git config --global user.email "xiao.950901@gmail.com"
  • 设置默认编辑器:
1
$ git config --global core.editor vim
  • 设置默认差异分析器:
1
$ git config --global merge.tool vimdiff
  • 设置默认上传方式:
1
$ git config --global push.default simple
  • 设置终端输出着色:
1
$ git config --global color.ui true
  • 获取配置信息
1
$ git config --list

常用操作

  • 获取帮助信息
1
$ git help COMMAND
  • 初始化仓库
1
$ git init
  • 克隆仓库
1
2
3
4
5
6
7
# 克隆本地仓库
$ git clone PATH
# 克隆服务器仓库
## 以http或https方式克隆
$ git clone URL
## 以ssh方式克隆
$ git clone username@host:PATH
  • 添加到缓存区
1
2
3
4
# 支持bash中的通配符
$ git add FILE
# 示例
$ git add .
  • 提交到本地仓库
1
$ git commit -m "代码提交的描述信息"
  • 获取当前工作的状态
1
$ git status
  • 获取远程仓库信息
1
2
3
$ git remote
# 获取详细信息
$ git remote -v
  • 添加远程仓库
1
$ git remote add origin SERVER
  • 推送至远程仓库
1
2
# 可以把master更改为任何分支
$ git push origin master

分支操作

  • 分支:用来将特性开发相互独立,在你创建仓库的时候,master为默认的,在其他分支上进行开发,完成后再将它们合并到主分支上;
  • 创建新分支
1
$ git branch NAME
  • 切换分支
1
2
3
$ git checkout NAME
# 若添加-b选项,则新建并切换分支
$ git checkout -b NAME
  • 合并分支:
1
2
3
4
# 先切换至主分支
$ git checkout master
# 再合并分支
$ git merge NAME
  • 删除分支:
1
$ git branch -d NAME
  • 获取当前所在分支
1
2
3
4
# *代表当前分支
$ git branch
# 添加-a选项,则获取远程分支
$ git branch -a
  • 获取与当前分支已合并/未合并的分支:
1
$ git branch [--merge | --no-merged]
  • 推送指定分支至远程仓库:
1
$ git push origin local_branch:remote_branch
  • 删除远程仓库的分支:
1
$ git push origin :remote_branch
  • 为分支重命名:
1
2
# 若newbranch已存在,需使用-M选项强制重命名
$ git branch -m oldbranch newbranch
  • 比较分支之间的差异:
1
$ git diff <source_branch> <target_branch>

配置SSH

  • GitHub官网:链接
  • 生成密钥对
1
$ ssh-keygen -t rsa
  • 将公钥信息添加到GitHub的个人设置Settings中的SSH and GPG keys
  • 测试是否通过验证:
1
$ ssh -T git@github.com
  • 请将密钥对妥善保管,若需更换主机,需拷贝密钥对并修改权限:
1
2
3
4
$ mv ~/.ssh/id_rsa ~/.ssh/github
$ mv ~/.ssh/id_rsa.pub ~/.ssh/github.pub
$ chmod 600 ~/.ssh/github
$ chmod 600 ~/.ssh/github.pub
  • 配置多用户Git的密钥
1
$ vim ~/.ssh/config
1
2
3
4
5
6
7
8
9
Host github.com
HostName github.com
User NAME
IdentityFile PATH

Host github.com
HostName github.com
User NAME
IdentityFile PATH

有你就有世界,感谢有你,昕!
0%