赞
踩
这部分都是准备工作。一次完成后,以后都不需要再设置了。
cd ~/.ssh //检查计算机ssh密钥
如果没有提示:No such file or directory,或者在C:\Users\Administrator.ssh(默认)中存在id_rsa.pub文件,那么说明不是第一次使用git。建议执行清理原有ssh密钥的操作。重新设置git和github的密钥(用于连接二者)。
ls // 用于查看当前目录下的文件(也就是检查是不是存在id_rsa和id_rsa.pub文件)
rm id_rsa* //删除上述两个文件
事实上,直接在C盘中将相应文件删除亦可。
ssh-Keygen -C'myemailname@email.com' -t rsa
这样在 C:\Users\Administrator.ssh中生成了两个文件id_rsa和id_rsa.pub,后者用记事本打开,即为密钥。
打开github(已经注册过github账户的前提下),右上角=>settings=>SSH and GPG keys=>New SSH key,随便写个title,将刚才得到的密钥复制粘贴到此处即可。
在git中检查和github的连接是否成功
ssh -T git@github.com // ssh -v git@github.com 也可以
看到提示Hi BeMyselfDoMylife! You’ve successfully authenticated, but GitHub does not provide shell access.则连接成功。
可能错误:
出现了下述问题:
The authenticity of host '<host>' can't be established.
ECDSA key fingerprint is SHA256:TER0dEslggzS/BROmiE/s70WqcYy6bk52fs+MLTIptM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'pc' (ECDSA) to the list of known hosts.
问题描述:
可能是由于主机的key有变化,或者是ip有变化等,这个提示是对宿主机的检查。
解决办法:
方法1、删除原ssh key,重新生成key
方法2、在交互时(yes/no)的选择中不放空,填yes。可以暂时成功,但是下次仍旧会有提示
方法3、ssh -o StrictHostKeyChecking=no 192.168.xxx.xxx
xxx是本机的ip地址,windows用ipconfig all查询。相当于忽略了本机的检查
http://stackoverflow.com/questions/3663895/ssh-the-authenticity-of-host-hostname-cant-be-established
git config --global user.name'给自己的git起的用户名'
git config --global user.email'xxxx@xx.com'
这是git官网上建议的全局变量的设置步骤,阅读笔记一中也提到了。
git config --global githubl.user xxxx
git config --global github.token we65431e564rw32w1e316w46we
其中token来自于github=>settings=>Personal access tokens=>Generate new token
上述步骤的目的是设置一个口令,不太明白设置的目的是什么?
按照github上的New repository新建项目,在此不再赘述。
假设创建的项目名字是test-item
找到要放置相关项目的地址,右键git bash here。
mkdir test-item
cd test-item
git init //初始化,目的是在test-item文件夹目录中创建一个.git的隐藏目录
git add . //后面的一个.意思是添加所有文件(到暂存区)的情况。如果只是想把指定的文件放到暂存区,可以如下:
git add xxx.ttt //xxx.ttt文件名.后缀
git commit -m'这次commit的说明'
git remote add origin git@github.com:用户名/test-item.git //连接远程github项目
git push -u origin master //上述连接完成后将本地的项目更新push到github项目上去
这样,本地文件夹中的文件xxx.ttt或者其他文件就被上传到github的同名项目中的更新上了。
需要说明的是git add
这一步其实是把文件暂时放在暂存区。
git存放代码的地方
git中有三个地方可以存放代码:
(1)工作目录树(也就是test-item文件夹下)——可以直接在此处编辑文件;
(2)暂存区(也就是索引index),这是工作目录树和版本库之间的缓冲区。
(3)版本库,最终存放的代码。
我理解的顺序:
文件夹中写代码 code.xxx => 工作目录树 => add => 暂存区 => commit =>版本库
检查状态
git status //显示工作目录树的状态,即当前的视图状态
git log //显示git中的提交留言
git remote -v //查看当前项目远程连接的是哪个仓库地址(即哪个github版本库)
可能错误1
在步骤git remote ...
中出现了以下问题
fatal: remote origin already exists
问题描述
我猜测这是因为远程的连接已经存在了,所以再次连接报错。可以忽视直接下一步push或者选择
git remote rm origin
相当于先关闭先前的remote。再重新执行
git remote add origin git@github.com:用户名/test-item.git
git push -u origin master
可能错误2
在步骤git push
中出现了下述错误:
error:failed to push som refs to...
问题描述
似乎是push时文件和github同名项目上的文件冲突,如上传的文件名相同(如果是同一份程序的不同版本,则应该选择分支更合理,以后再描述)等。
或者github上的文件需要先更新到本地版本库项目中。
解决办法
对于同名文件的上传,选择分支而不是master。以后具体阐释。
对于后一个可能。
git pull origin master
即先把远程服务器github上的文件pull下来(此时github上的文件都传到本地中了)。再执行:
git push -u origin master
当出现:
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 393 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
Togithub.com:****/algorithm-test.git
awe546we654 master -> master
Branch master set up to track remote branch master from origin.
类似这样的结果说明上传成功。
如果本地文件夹中不存在这个项目,第一次想要将github中的文件存放到本地电脑中的指定文件夹中,git bash here并运行:
git clone git@github.com:用户名/test-item.git
如果本地中已经有了这个项目。github仓库中有更新,想要把更新合并到本地项目中。(例如,电脑甲了code,并commit到github中了,想要同步电脑乙中的code)
同样在github的相应文件夹中,git bash here并运行:
git fetch origin //取得远程更新,但只取着了还没做操作
git merge origin/master //把更新的内容合并到本地分支/master中
虫师的博客-git/github学习笔记
http://www.cnblogs.com/fnng/archive/2011/08/25/2153807.html
虫师的博客-git/github初级运用自如
http://www.cnblogs.com/fnng/archive/2012/01/07/2315685.html
Git/Github使用方法小记
http://artori.us/git-github-usage/
`
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。