Git常用命令整理

客户端

  • 初始化本地仓库
1
$ git init
  • 设置自己的联系方式(最好设置一下 团队合作时需要知道是谁做的变动
1
2
3
$ git config --global user.email "my.email@xxx.xx"

$ git config --global user.name "myname"
  • 列出git config每一项
1
$ git config --list
  • 查询当前目录状态
1
$ git status
  • 添加到本地缓存区(添加全部
1
$ git add .
  • 提交到本地仓库
1
$ git commit -m "my commit message"
  • 初始设置远程仓库地址
1
$ git remote add origin git@x.x.x.x:xxx.git

如果服务端ssh默认端口不是22

1
$ git remote add origin git@x.x.x.x:xx/~/x/xxx.git
  • 改变远程仓库地址
1
$ git remote set-url origin git@x.x.x.x:xxx.git

若服务端ssh默认端口不是22参照上条

  • 拉取远程分支并合并到本地
1
$ git pull origin master 

实例中master为默认主分支

git pull相当于git merge和git fetch

  • 推送本地分支到远程分支
1
$ git push origin master

实例中master为默认主分支

  • 查看当前仓库中的详细操作日志 与 简略日志
1
2
3
$ git log 

$ git reflog
  • 查看分支与创建一个新的分支
1
2
3
$ git branch

$ git branch xxx
  • 切换到其他分支
1
$ git checkout xxx
  • 回滚到某一版本

首先使用 reflog 命令查询简要 commit 信息 
再使用 hash 进行 reset 回滚即可

1
$ git reset -hard <target hash>

服务端 (root on CentOS 7

  • 安装git

    1
    # yum install -y git
  • 添加git用户

1
# useradd git
  • 设置git用户登录权限
1
2
3
4
5
6
# vi /etc/passwd

找到
git:x:500:500::/home/git:/bin/bash
改为 ↓
git:x:1000:1000::/home/git:/usr/bin/git-shell
  • 新建一个仓库
1
# git init --bare xxx.git
  • 提权
1
# chown -R git:git xxx.git

接下来在本地git client测试一下就好

设置公钥登录

客户端 (Microsoft Windows)

找到用户目录下的.ssh/id_rsa.pub将其中内容复制给服务端

没有该文件或文件夹的话在git bash客户端执行如下命令

1
$ ssh key-gen
服务端 (root on CentOS 7

拿到客户端公钥在如下文件中新起一行复制

1
# vi /home/git/.ssh/authorized_keys

END