Git2.11.0初尝试遇到的坑

前言

最近整理自己以前写的代码,并上传代码到专门提供Git仓库托管服务的GitHub。Git是目前世界上最先进的分布式版本控制系统,可以用来管理我们的代码更改记录,实现我们的代码笔记同步。

感谢廖大神的博客:Git教程 ,让我加深了对git的理解。
感谢codingLou的博客:git2.9.2使用总结,解决了我遇到的问题。

环境

  • git版本:2.11.0
    配置过程中出了问题,花了些许时间才发现是较新的git版本引起的。
  • 操作系统:win10
  • 托管环境:GitHub

步骤

现在按照官网步骤来做就好(2017年6月5日更新):

1
2
3
4
5
6
echo "# TestRepository" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:solano-yume/TestRepository.git
git push -u origin master

准备好git客户端,windows平台推荐msysgit,下载地址https://git-for-windows.github.io,下载完默认安装即可。git bash中文乱码问题请转到最后。

GitHub上创建远程仓库,创建一个key,然后将公钥添加到github,用于与本地仓库关联

查看本地密钥:

1
ls -al ~/.ssh

创建密钥,其中邮箱可以不和你github上面的相同:

1
ssh-keygen -t rsa -C "example@xx.com"

用文本编辑工具打开并复制用户主目录的.ssh文件夹的id_rsa.pub,github设置中添加该公钥,接着验证公钥正确性:

1
ssh -T git@github.com

至此,可以准备提交你的代码了。

git bash中进入到需要上传的项目文件夹下,初始化本地仓库:

1
git init

如果创建远程仓库时勾选了Initialize this repository with a README选项,可跳过这一步。

1
touch README.md

将所有文件添加到本地仓库中,包括README.md

1
git add .

提交改变到缓存:

1
git commit -m "第一次提交"

本地git仓库关联到github远程仓库,并实现同步:

1
git remote add origin git@github.com:solano-yume/JustATest.git

上面都没有问题,接下来是我这里出问题的地方,错误提示为:
error: failed to push some refs to 'git@github.com:solano-yume/JustATest.git'

1
git push origin master

git新版本中把远程的origin仓库的master分支同步到本地,需要添加--allow-unrelated-histories参数:

1
git pull origin master --allow-unrelated-histories

最后在将两个仓库关联:

1
git push origin master:master

解决bit bash中文乱码问题

  1. bit bash 中右键,选择”Option“
  2. 选择”Text“,设置字符编码为UTF-8.

杂项

删除github仓库的某个文件

1
2
3
git rm --cached filename // cd进入该文件夹
git commit -m "I want to delete you"
git push origin master