汇总 git 常用命令

git 配置:

git config --global user.name "xiexianbin"            -- 配置用户名,上传本地 repository 到服务器上的时候,在 Github 上会显示这里配置的上传者信息
git config --global user.email "me@xiexianbin.cn"     -- 配置邮箱
git config core.filemode true                         -- 配置文件mode敏感,在git管理的目录下执行,cat .git/config 查看
git config --list                                     -- 查看配置列表

配置 sshkey

上传代码时使用这个 sshkey 来确认是否有上传权限

创建本地 ssh :

ssh-keygen -t rsa -C "邮箱"

在 Github 中添加这个 sshkey

复制C:\Documents and Settings\Administrator.ssh\id_rsa.pub 文件中的内容,登录 Github –> Account Setting –> SSH-KEY –> Add SSH-KEY –> 粘贴id_rsa.pub中的内容;

验证

ssh -T git@github.com
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access. 

说明配置成功,可以连接上 Github

建立仓库 repository

git init here       -- 创建本地仓库
git remote add origin git@github.com:用户名/仓库名.git
                    -- 把本地仓库和远程仓库关联起来, 如果不执行这个命令的话,每次 push 的时候都需要指定远程服务器的地址

从远程仓库中下载新的改动:

git pull origin master

提交本地修改到远程仓库中:

git add
git add -A      -- 将改动添加到本地仓库中
git rm xxx      -- 从本地仓库中删除指定文件
git rm -r xxx   -- 从本地仓库中删除指定文件夹

git commit -m "注释"    -- 把本机缓存中的内容提交到本机的 HEAD 里面

git push origin master      -- 把本地的 commit push 到远程仓库中

git push origin HEAD:master

指定分支push:

git push origin HEAD:stable/jdk8

使用 .gitignore 文件忽略指定的内容:

  • 在本地仓库根目录创建 .gitignore 文件。Win7 下不能直接创建,可以创建 “.gitignore.” 文件,后面的标点自动被忽略;

  • 过滤文件和文件夹: [Tt]emp/ 过滤 Temp\temp 文件夹; *.suo 过滤 .suo 文件;

  • 不过滤文件和文件夹: !*.c

git 设置和取消代理

git config --global https.proxy http://127.0.0.1:1080

git config --global https.proxy https://127.0.0.1:1080

git config --global --unset http.proxy

git config --global --unset https.proxy

问题

多邮箱问题

remote pull push的时候会有问题,因为设置了 pull 的时候识别的是邮箱,2个 github 账号,2个邮箱,我们自然不能使用global的user.email,修复方式:

首先,取消global:

git config --global --unset user.name
git config --global --unset user.email

然后,设置每个项目repo的自己的user.email

cd project
git config  user.email "me@xiexianbin.cn"
git config  user.name "xiexianbin"

可以在.git/config 中查看对应的设置。

完毕。