Git 全局设置

1
2
git config --global user.name "yourname"
git config --global user.email "your_email@163.com"

创建 git 仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mkdir  your_repo_dir
cd your_repo_dir
git init
touch README.md
git add README.md # 添加文件到暂存区
git status -sb # 查看暂存区状态
git commit -m "first commit" # 提交文件并且带注释
git commit #不带注释的提交
git checkout -b testBranch # 生成testBranch并转到该分支
git branch test # 生成test分支或者转到该分支
git branch -d test # 删除test分支
# 文件修改完成后,需要合并分支,首先切换到主分支然后合并
git checkout master
git merge test
git remote add origin your_remote_repo_address # 将本地仓库提交到远程地址
git push -u origin master # 将本地仓库推送更新到远程地址
git pull # 将远程仓库更新到本地来

更新子模块

当网络不好的时候,git pull 容易出错,此时 clone 有子模块的 repo 极易出错,使用以下命令:

1
git submodule update --init --recursive

常见错误

fatal: unable to access ‘xxxxx’: Failed to connect to xxxx port 443: Timed out

可能是 https 或者 代理的问题,第一种解决方法:

1
git config --global --unset http.proxy

取消代理,重新 git clone 尝试。
如果第一种不行,可能是 https 服务器的问题,第二种解决方法:
使用 http 协议

1
git clone http://example.github/example.git

fatal: unable to access github: OpenSSL SSL_read: Connection was reset, errno 10054

原因是可能被墙了,解决方法如下:

  1. 修改 host 映射,具体参照 无法连接github

  2. 更新DNS缓存

    • Mac用户:

      1
      2
      sudo killall -HUP mDNSResponder
      sudo dscacheutil -flushcache
    • Windows用户:

      1
      ipconfig /flushdns

此问题参考博文,使用git克隆github上的项目失败:unable to access github: OpenSSL SSL_read: Connection was reset, errno 10054