如何将本地的项目一键同步到GitHub

不适合人类阅读非常水的学习笔记

Posted by Yean on March 24, 2019

相信很多朋友都曾遇到过这样一个问题,想要在另一台电脑上同步你的个人项目,以便能身居‘异地’也依然能同步开发!所以我们把自己的项目同步到远程仓库,想在哪里里开发,就pull到本地改完再push到远程仓库,极其方便~

鉴于有好几次都记错了相关命令,故记于此,来日多多翻阅…

安装git和如何使用github不做讲诉…

准备工作,本地git获得github的提交权限

  • 设置用户名和邮箱

    • git config --global user.name 'your_name'
    • git config --global user.email 'your_email'
  • 生成SSH密匙

    ssh-keygen -t rsa -C 'your_email'
    

    ,email和你设置的git邮箱一致

    指令执行后会让你确定密钥保存地址和设置密码,这些不用管,全部回车就好

  • 添加生成的id_rsa.pub文件中的公钥(用记事本打开全部复制)到github的setting / SSH AND GPG KEY / SSH keys

  • 最后测试是否关联成功,git bash输入ssh git@github.com, 如果提示successfully authenticated则成功

创建本地仓库

  • cd到项目目录
  • git init 初始化git仓库
  • git add . 把所有项目文件添加到提交暂存区
  • git commit -m '提交说明' 把暂存区中的内容提交到仓库

创建远程仓库

本文使用github,创建仓库步骤不赘述,仓库名(也就是项目名)[resName]

在github中新建一个repository,复制仓库地址:

同步本地仓库到远程仓库

执行命令:

 //新建一个repository时会出现下面的代码,直接复制即可
 $ git remote add origin https://github.com/CongliYin/CSS.git

注意:

如果出现错误:fatal: remote origin already exists,则执行以下语句:

$ git remote rm origin

再重新执行:

$ git remote add origin https://github.com/CongliYin/CSS.git

即可成功。

最后执行命令:

$ git push origin master

如果出现错误failed to push som refs to…….,则执行以下语句,先把远程服务器github上面的文件拉先来,再push 上去。:

$ git pull origin master

如何同步更新已经存在的或folk之后的项目

项目开发时,为了方便版本管理,许多公司采用git来控制项目版本。简单介绍下:

第一步:将项目从github或者服务器上克隆下来,命令:git clone url。url为项目服务器地址或github地址,如下图所示:

第二步:未修改项目前,查看项目状态,命令:git status。如下图:

由图可以看出来,项目刚更新下来,没有文件更改。

注:查看当前状态,必须进入到项目文件中,而不是本地仓库中。

第三步:修改项目部分文件,再次看项目状态。如下图:

由图上红色文字可以看出,“README.md”被更改。

第四步:将文件修改提交到本地暂存区,命令:git add file,file 为修改文件名。如下图所示:

由图可以看出,修改文件添加到本地暂存区后,颜色变了。

注:每次修改后的文件,都必须添加到本地暂存区后,才能更新到项目上。

第五步:提交当前工作空间的修改内容,命令:git commit -m“修改”,引号里面是提交信息,自己可以填写其他内容。如下图所示:

由图可以看出,提交后再看项目状态,提示没有内容可以提交。

注:提交的时候必须用-m来输入一条提交信息,类似于svn的commit。

第六步:将项目更新到github或服务器,命令:git push。如下图:

项目上传成功。

另外,如果下次还要更新项目,直接git pull即可,因为本地空间和服务器或github的通道通过git clone已经建立。

更新远程代码到本地

查看远程分支

使用如下命令可以查看远程仓库(我这里有一个origin仓库)

$ git remote -v
origin https://github.com/suijingfeng/but_velodyne.git (fetch)

origin https://github.com/suijingfeng/but_velodyne.git (push)

git remote命令会列出每个远程库的简短名字,在克隆完某个项目后,至少可以看到一个名为 origin 的远程库,git默认使用这个名字来标识你所克隆的原始仓库。

从远程获取最新版本到本地

使用如下命令可以在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支

$ git fetch origin master:temp

remote: Counting objects: 18,done.

remote: Compressing objects: 100% (6/6),done.

remote: Total 11 。。。。

比较本地仓库与下载的temp分支

使用如下命令来比较本地代码与刚刚从远程下载下来的代码的区别:

$ git diff temp

合并temp分支到本地的master分支对比区别之后,如果觉得没有问题,可以使用如下命令进行代码合并:

$ git merge temp

删除temp分支

如果temp分支不想要保留,可以使用如下命令删除该分支:

$ git branch -d temp

如果该分支的代码之前没有merge到本地,那么删除该分支会报错,可以使用git branch -D temp强制删除该分支。

常见问题解决

1.push时报错不能覆盖远程仓库代码

事实上远程仓库是新建的,里边或许有个README.md,就再没有其他,故直接强制覆盖;-f:强制覆盖。

git push -uf origin master

2.git remote add origin git@github.com:[githubUerName]/[resName]时报错remote origin already existsorigin别名已经存在

删除origin,然后重试。

git remote rm origin