使用git上传项目到github的最基础命令

一、前言

把github作为自己项目托管的地方,实在是一个明智的选择。就算你不为自己项目考虑,你也要为你团队项目开发而学呀!可能有些初学者(比如我)会觉得git命令好多啊,又是各种术语,觉得好难上手。其实学会一些基础的git命令是很简单的!花半个小时就能学会把自己的项目部署在github上面啦。(当然,我也只是了解github冰山的一角,一起加油加油加油吧)

二、正片

1、如果这是你的第一次,请乖乖配置SSH

  • 如果未生成你的专属SSH,看这步⬇
    终端输入:
ssh-keygen -t rsa -C "your@email.com"(请填你设置的邮箱地址)

啦一片之后请往下看

  • 已有SSH,直接终端open ~/.ssh,打开.ssh文件夹的id_rsa.pub,复制所有内容,在github上添加SSH(粘贴到key,title随意)

    填好后,Add 它!

2、开始github的命令之路

  • 从github拷贝项目到我的本地!

    1. 终端cd进入要存放文件的文件夹
    2. 终端直接git clone url(github文件夹地址)
      git_clone
  • 把我的项目上传到github    ★ ★ ★ ★ ★

  1. 注册、登陆,创建仓库的操作请提前完成。
    创建仓库

  2. 终端cd + 项目路径执行到项目路径执行指令:git init

  3. 选择需要提交的文件到暂存区:git add .(提交全部)
    如需提交单个/多个:git add file1 file2 ...

  4. 提交代码到暂存区:git commit -m '注释'
    这个注释就是后面github查看的时候文件右边显示的描述。
    如果需要修改注释:git commit —amend -m 'xxx'

  5. 关联到远程版本库:git remote add origin url
    敲桌子!!这个url是变量,是你github仓库的url地址.
    例如:git remote add origin https://github.com/soybeanxiaobi/webpack_codeSplitting

  6. 万事俱备,只欠提交。推送到远程版本库:git push origin master (如github存在本地未对应修改的文件,需先执行git pull --rebase origin master)

过程需要输入github用户名和密码

  1. 大功告成!!!另外在git add . 后,可以通过git status查看相关改动

这里放一些常见的错误:

1. 如果remote的url填错了(即第5个环节),如何修改
如果url写错了想修改的话,可以这么做:
查询remote git remote -v

$ git remote -v
origin https://githubxxxx (fetch)
origin https://githubxxxx (push)

移除相应的remote git remote remove <name>

$ git remote remove origin

重新添加url git remote origin url
这里注意一下,origin也可以变更为test之类的自定义名字,所以删除remote的时候要确定好名字。例如git remote remove test分支名为test

2. 提交的时候显示,Updates were rejected because the remote contains work that you do

原因是在连接远程仓库的时候本地没有更新拉取代码(比如远程仓库有一个readme.md文件)
在push(提交)之前先pull(更新)一下

git pull origin master

期间可能需要你在vim编辑器解决冲突。处理好之后重新git push origin master即可

三、结尾  我要记一个问题.日后解决了回来补充


刚刚commit提交的注释就是红色框框的东西。那么问题来了:如果修改每一个文件的注释呢?有的人说上传多次就行了。我还没有实践出来。希望有关大佬能够教教,无比感激!!

四、真结尾

刚了解了命令的,是不是迫不及待试一试咧。
window的童鞋在项目文件右击Git Bash Here 输入命令即可
macOS的童鞋直接终端操作即可
欢迎留言。

__

git pull时代码冲突

如果想从服务器更新代码的时候,发现代码冲突的时候,会报错:

error: Your local changes to the following files would be overwritten by merge:xxx

Please, commit your changes or stash them before you can merge.

解决办法:

  1. 手动解决:
    冲突标记<<<<<<< 与======= 之间的内容是本地代码
    =======与>>>>>>>之间的内容是git上的代码
    把冲突标记删掉,把冲突解决正确。
    例如:
<<<<<<< HEAD: mergetest
本地冲突代码1
本地冲突代码2
=======
git冲突代码1
git冲突代码2
>>>>>>> ...hash: mergetest

如需要本地代码1和git代码2,解决冲突后,文件内容为:

本地冲突代码1
git冲突代码2

2.以服务器冲突代码为主

git stash
git pull

然后使用git diff -w +文件名 来确认代码自动合并的情况.

3.以本地冲突代码为主

git reset --hard
git pull

其中git reset是针对版本,如果想针对文件回退本地修改,使用

git checkout HEAD file/to/restore
posted @ 2018-08-24 20:05  xiaobe  阅读(472)  评论(0编辑  收藏  举报