ubuntu16.04下安装配置git
- 用户目录下ls -a ,进入.ssh文件,检查里面是否包含有id_rsa(私钥)和id_rsa.pub(公钥)这两个文件,若有,可删除进入下一步(也可不删除直接到第3步),若没有,则执行2、3步;
- 在ssh目录下输入命令行:ssh-keygen -t rsa -C “自己的github邮箱地址”,此时,id_rsa(私钥)和id_rsa.pub(公钥)这两个文件被创建了
- 利用cat命令,查看id_rsa.pub的内容并复制下来。
注意:这里不要用vim命令进入并拷贝,vim的换行会导致这个key在第4步操作中无法被github识别,出现“Key is invalid. Ensure you’ve copied the file correctly “的错误。 - 登录GitHub帐号,依次点击Settings -> SSH Keys -> Add SSH Key,将id_rsa.pub文件中的字符串复制进去
- 检查SSH连接情况(在~/.ssh目录下):ssh -T git@github.com。出现:“Hi ****! You’ve successfully authenticated, but GitHub does not provide shell access.“表示连接成功。
注意1:第一次检查ssh连接时,会出现“The authenticity of host ‘github.com (xx.xx.xx.xx)’ can’t be established.RSA key fingerprint is xx.xx.xx.xx.xx.Are you sure you want to continue connecting (yes/no)?“的情况,只需要输入"yes"并按回车即可,一定要输入"yes"而不是任意键;
注意2 :该命令行不要加sudo,否则会出现“Permission denied(publickey)"的错误 。 - 配置git
即利用自己的用户名和email地址配置git
git config --global user.name “你的github用户名”
git config --global user.email “你的github邮箱地址”
创建远程库与本地仓库同步
-
创建本地仓库(“项目名“改为你想要的仓库名字):
mkdir 项目名
cd 项目名
git init -
github上new repository 创建新的远程库,与本地仓库同名
-
git remote add origin https//github.com/你的用户名/项目名.git
与远程仓库关联起来,但是这一步明明写对了路径,有时候还是会莫名其妙报错:
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决办法:执行以下指令
git remote set-url origin git@github.com:你的用户名/项目名.git -
本地仓库编辑内容,完成后把本地内容推到远程仓库去:
git add . //将本地修改添加到本地仓库
git commit -m “提交注释” //将本地修改提交到本地仓库
git push -u origin master // 将代码push到远程仓库中
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
从远程仓库下载代码到本地修改再同步回远程仓库
- git clone git@github.com:你的用户名/项目名.git
注意:不需要事先单独建同名本地仓库以及git init操作,直接克隆即可 - 进入克隆下来的本地仓库,进行代码修改操作
- git pull origin master
将远程代码pull下来与本地代码merge,这里可以选择与branch或master合并。注意,一般在有多人提交的情况下才需要这一步,若他人的更新与本地更新冲突,则进行第4步,若没有冲突,则直接到第5步 - git status
该指令查看哪个文件发生了冲突,直接打开该文件进行编辑,把冲突标记删掉(如<<<<<、======),直接编辑我们想留下的内容,解决冲突 - git add . 或 git add 冲突文件
与远程仓库合并成功后,可以将本地的修改添加到本地仓库 - git commit -m “提交注释”
将本地修改提交到本地仓库 - git push origin master
将代码push到远程仓库中