Git常用命令总结

参考网上诸多教程,把GIT的一些常用命令记录下来, 方便查看.

GIT配置命令

1
2
3
4
git config --global user.name "bryan sun"
git config --global user.email "hitsjt@gmail.com"
git config --list # 查看配置信息(包括用户名和邮箱)
git branch # 查看本地分支

GIT推送命令

1
2
3
git add .
git commit -m "commit"
git push origin master

Git删除所有commit记录

1
2
3
4
5
6
git checkout --orphan latest_branch
git add -A
git commit -am "first commit"
git branch -D master
git branch -m master
git push -f origin master

Git remote

1
2
3
4
5
6
git remote -v # 查看所有远程仓库
git remote show [远程仓库名] # 详细查看某个远程仓库
git remote add [远程仓库名] [远程仓库地址] # 添加远程仓库
git remote remove [远程仓库名] # 移除某个远程仓库
git remote rename [现在的仓库名] [新的仓库名] # 重命名某个远程仓库
git remote rm [远程仓库名]

Git Proxy

Http和Https代理

  • http类型代理

    1
    2
    git config --global http.proxy 'http://127.0.0.1:1081'
    git config --global https.proxy 'http://127.0.0.1:1081'
  • socks5类型代理

    1
    2
    git config --global http.proxy 'socks5://127.0.0.1:1080'
    git config --global https.proxy 'socks5://127.0.0.1:1080'
  • 分域名代理

    1
    2
    git config --global http.https://github.com.proxy http://127.0.0.1:1081
    git config --global https.https://github.com.proxy https://127.0.0.1:1081
  • 查当前的代理配置

    1
    2
    git config --global --get http.proxy  
    git config --global --get https.proxy
  • 取消设置代理

    1
    2
    git config --global --unset http.proxy  
    git config --global --unset https.proxy
  • 设置使用需账户密码验证的代理

    如果出现错误如下,则需要添加用户名和密码

    1
    2
    fatal: NotSupportedException encountered.
    ServicePointManager 不支持具有 socks5 方案的代理。

    下面设置需要密码的代理

    1
    2
    git config --global http.proxy http://username:passwd@127.0.0.1:1081
    git config --global http.proxy socks5://username:passwd@127.0.0.1:1080

SSH代理

编辑~/.ssh/config文件(没有则自己创建)

Linux下配置(未验证)

1
2
# 需要 netcat
ProxyCommand nc -v -x 127.0.0.1:1080 %h %pxxxxxxxxxx ProxyCommand nc -v -x 1

windows下配置

1
2
# -S 为 socks, -H 为 HTTP
ProxyCommand connect -S 127.0.0.1:1080 %h %p

如果找不到 connect 命令那么指定其绝对路径,一般在 git 安装目录下 \mingw64\bin\connect.exe.

分域名代理

1
2
Host github.com
ProxyCommand connect -S 127.0.0.1:1080 %h %p

Git配置多账户

github限制了不同github账户不能使用同一个SSH key,个人在网上找了一些教程,总结一下。

假设我们github账号的邮箱名为abc@gmail.com

生成ssh key

目前我们的git有一个global配置,默认使用~/.ssh/id_rsa.pub公钥连接,该公钥只能用在一个github账户的SSH key中,因此我们需要生成一个新的ssh key,git中执行如下命令:

1
2
cd ~/.ssh
ssh-keygen -t rsa -C "abc@gmail.com" -f "id_rsa_abc"

此时我们可以看到~/.ssh文件夹下生成了id_rsa_abcid_rsa_abc.pub文件。

执行命令:

1
cat ~/.ssh/id_rsa_abc.pub

复制该文件的内容,在github setting中新建SSH key,将内容粘贴进去, title随意写。

新建config文件

~/.ssh文件夹下新建config文件,注意没有后缀。

文件内容填写如下:

1
2
3
4
5
6
7
8
9
10
11
#Default GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa

#newaccount
Host newaccount
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_abc

配置文件的含义显而易见。

配置完毕后,在git中执行命令:

1
ssh -T git@newaccount

如果返回没有报错,说明配置成功。

连接仓库

: 这里我们只能通过ssh协议来连接仓库。

假设我们新建了一个仓库为 abc/abc-repo.git,abc为用户名, abc-repo为仓库名,添加origin的方式如下。

1
git remote add origin git@newaccount:abc/abc-repo.git