将本地项目文件上传至github相关步骤(以下未特殊说明的均代表首次)

git官网:https://git-scm.com/

github官网:https://github.com/

git的安装以及GitHub的注册这里就不说了。

下边就直接从上传开始。

第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹)。

       你可以直接在桌面右击新建文件夹(这里命名为test2),也可以右击打开Git bash命令行窗口通过命令来创建。

第二步:在命令行中输入git init把这个文件夹变成Git可管理的仓库

       

       这时你会发现test里面多了个.git文件夹,它是Git用来跟踪和管理版本库的,因为它默认是隐藏文件,要是看不到就设置下文件夹和搜索选项,让隐藏文件可见。

  之后把需要上传到GitHub的文件全部复制到这test2这个文件夹下。

  

  然后通过git add .(注意这个".",是有空格的,"."代表这个test这个文件夹下的目录全部都提交。你也可以通过git add 文件名  提交指定的文件)把文件添加到缓存区

  

  然后可以通过git status命令,查看下现在的状态,也可以不看,随你

  看到有css,js文件夹的内容都提交上去了。

  然后,在使用命令git commit -m "这里面写你的注释"  把文件提交的本地仓库

第三步:连接远程仓库(也就是连接Github

  由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要设置一下:

  先创建SSH KEY。先看一下你C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到下一步,没有就通过下面命令创建

   $ ssh-keygen -t rsa -C "youremail@example.com"

       然后一路回车。创建成功后会显示这样:

       这时你就会在用户下的.ssh目录里找到id_rsa和id_rsa.pub这两个文件。但是这个文件刚创建的时候是没有known_hosts文件的,而我这里有是因为我提交成功后生成的。

第四步:登录Github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的添加。具体步骤也可看下面:

这几步是把项目上传至github服务器,但是多数情况下,企业会把项目上传至自己的服务器上,跟上传至github服务器步骤差不多,也是要在GitLab(相当于国内的github吧)新建一个属于你自己的账号,然后管理员将你拉进公司项目开发组,随后你自己再将公钥上传上去即可,接下来的步骤类似

上面key默认在C:\Users\Administrator\.ssh下的id_rsa.pub文件中,把这个文件中的内容全部复制到上面的key里面就可以了。如下图:

第五步:在Github上创建一个Git仓库(也可以不新建,不新建则直接查看第七步)。

     你可以直接点New repository来创建,比如我创建了一个test2(命名最好与你第一步里的文件夹名称一致)的仓库。

上面我没有默认勾选Initialize this repository with a README,勾选和不勾选创建的结果区别如下(这里建议勾选):

下边这个是勾选的

第六步:在Github上创建好Git仓库之后我们就可以和本地仓库进行关联了,根据创建好的Git仓库页面的提示,在git 命令行里输入:

   $ git remote add origin git@github.com:CharlesTian07/test2.git

一定要记得$ git remote add origin git@github.com:这部分命令是固定的,但是后面的是你的github账户昵称和你创建的项目名称。上面的只是举个例子,实际上要怎么找到这两个信息,看下图:

  

附(特殊说明):

若是想在另外一台电脑同步的话,那么输入命令git pull git@github.com即可

但是第一次pull或者上传的时候会出现以下问题,如图:

意思很明显,因为你是第一次,所以远程仓库并不知道你是谁,这时你需要先表明你的身份是否在开发组中, 接下来根据提示的步骤来输入你的账号和密码:

①git config --global user.email "youraddress@company.com"

②git config --global user.name "yourname"

第七步:关联好之后我们就可以把本地库的所有内容推送到远程仓库(也就是Github)上了,通过:

   $ git push -u origin master

       由于新建的远程仓库是空的,所以要加上-u这个参数(如果仓库不是空的,加了会报错)。

注意:这里可能会报这样的错误:

The authenticity of host 'github.com (13.229.188.59)' can't be established.

RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights

and the repository exists.

提示:这里有个小坑!!!值得注意!那就是在报第一句话的错误时候,它会显示这么一句:

RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.

Are you sure you want to continue connecting (yes/no)?

而这里千万不能直接回车!!!千万不能直接回车!!!千万不能直接回车!!!

其实这里只需要在命令栏输入:yes即可!就可将本地项目文件上传至github!

如果上述操作之后还是会报错,那么可能有以下几个原因:

原因:1.github上没有与本地仓库相关联(重新remote)

           2.ssh不对(多数情况)

ssh解决:

1.  cat ~/.ssh/id_rsa.pub 查看ssh是否是自己的,不是说明是ssh问题,是的就是远程关联问题

2. 如果是ssh问题则在git仓库同目录 删除.ssh文件夹 (隐藏文件夹)

判断删除成功: cat ~/.ssh/id_rsa.pub
出现cat: /c/Users/ZhangLin/.ssh/id_rsa.pub: No such file or directory

3.重新创建ssh  ssh-keygen -t rsa -C "your_email@example.com“

一路回车

4.在ssh文件夹下pub文件中的内容复制  github上新建一个ssh链接

最后上传完毕之后,进去GitHub battleEnglish这个仓库刷新下就会有已经上传的文件夹了。 

  如果新建远程仓库不是空的,例如你勾选了 Initialize this repository with a README。那么你通过命令 $ git push -u origin master是会报错的,如下:

  

   这是由于你新创建的那个仓库里面的README文件不在本地仓库目录中,这时我们可以通过以下命令先将内容合并以下:

   $ git pull --rebase origin master

       

  再输入$ git push origin master。

  等远程仓库里面有了内容之后,下次再从本地库上传内容的时候只需下面这样就可以了:

  $ git push origin master。

   至此就完成了将本地项目上传到Github的整个过程。

如果项目是由一个人开发的:

(1)如果项目已在github上:

1.在另外一台计算上,从你的github账户上点击clone or download下载你的项目文件;

2.下载好之后,在桌面任意地方右键git Bash here弹出git命令操作窗口(前提是要下载git工具);

3.然后在里面输入命令进入到你存放项目的路径文件夹中;

4.下载下来的文件中是没有.git文件夹的,而.git文件夹的作用是连接你本地和github服务器的,所以你要输入命令:git init创建一个.git文件夹,这个文件夹默认是隐藏的,如果你看不见,你可以设置一下对隐藏文件可见(具体操作可百度);

5.如果你要实时从github上更新数据到你的本地,那么你要输入命令:git pull "your project http URL",下面就会出现哪些文件更新到了你的本地;

二、如果项目是由多人开发的:

可以创建分支branch,然后各开发各的,最后再merge即可。

具体实现操作待更新....

参考文献:如何将本地项目上传到Github - 姜飞祥 - 博客园

----------------------------------------------------------------2018.11.13更新----------------------------------------------------------------

1.远程仓库创建新建分支(可百度搜索)之后,在git输入命令:git branch -a;可查看远程分支的名字,此时是看不到的,因为你还没有把这个分支取到,所以你要先获取到;

2.接下来需要在git中输入命令:git fetch origin develop(develop是新建的分支名)可获取远程所有分支,然后再输入命令:git branch -a;可查看远程分支的名字;

3.再输入命令:git checkout -b develop origin/develop即可切换分支

---------------------------------------------------------2019.4.15更新----------------------------------------------------------

1. 如果是所有的开发配置都已经弄好(一般新手刚入职时,负责你的同事基本会帮你把这些配置都弄好了),只需要直接新建一个分支进行开发的话,在相应的开发项目根目录下,运行git bash here,然后直接输入:git checkout -b yourdevname(yourdevname就是你分支的名字,-b的意思是新建分支,下图dev-tc是博主创建的分支名);

2. 这个时候,因为你已经在项目开发当中,每天需要把修改的文件提交至gitlab,该怎么提交?

1)git add . (后面的点不要忘记!)

意思是把修改过的本地文件甄别出来

2)git status (这个步骤对于新手来说,最好不要忽略!)

这个步骤可显示你修改的文件具体是哪些,便于核查,避免出错(有时候连高手也不会跳过这个步骤)

3)git commit -m "your comment is here"

这个步骤是写下你的注释,即你修改的需求是啥

4)因为你是第一次提交代码,所以你先要连接远程仓库:git remote add origin project-url

否则你直接跳过步骤4)和5)而进行步骤6)会报以下错误:

5) 还是因为你是第一次提交代码,且远程仓库并没有你在第1个大步骤创建的分支,所以你还需要把你的分支给上传至远程仓库

git push --set-upstream origin yourdevname

如果跳过5)步骤直接进行6)步骤会报以下错误:

6)所有准备步骤都已备齐,是时候表演真正的技术了,最后一步就是把修改的代码提交至远程仓库即可。

git push

它会显示push的实时进程

7)去gitlab可查看你的分支名和上传的代码,会发现你在git操作的指令与gitlab上的项目完美配对~ 

8)看到自己的代码上传上去之后,是不是觉得有一种成就感?哈哈哈,别急着高兴,由于你提交的代码只在你的分支上,若是有其他人跟你一起开发同一个项目(不同模块),他也有一个分支,刚好在你提交代码的前几分钟他也上传他的最新代码,那怎么让他做的功能也显示在你的本地代码上呢?很简单,执行命令:

git pull origin dev-anotherDeveloper

就可以拉取到他的最新代码了,然后再一起提交至你的代码即可。

9)若是在第五步的时候,你想提交的并不是你的分支,而就是master,且你已做了以上六个步骤,在第七个步骤的时候,发现gitlab上的commits并没有你提交代码的记录,那说明还没有提交至master,那么应该这样操作:

(1)git pull

(2)git branch --set-upstream-to=origin/master master

(3)git push

------------------------------------------------------2019.05.16更新---------------------------------------------------------

1. 如果自己刚上传的版本,在测试环境下运行符合自己的预期,但是在接下来的修改中(修改有点多的情况下),再运行时发现总是报错,且查找错误耗费了一定时间,实在耗不起了,则可以进行回滚版本操作:

在git命令窗口里输入:

git reset --hard HEAD^

(^表示回滚一次)

或者

git reset --hard HEAD~n

(n表示n次)

2. 如果自己本地有修改的文件,在上传的时候发现有远程版本需要pull,但是你会发现你git pull之后,命令窗口会显示需要你输入merge之后的commit(注释),这个你发现按enter键无效,不知道该怎样才能进行接下来的git操作,此时:

在git命令窗口里按照顺序依次按下:

①shift + :

②q

③enter

就好了。

------------------------------------------------------------2019.5.27更新------------------------------------------------------

如果你完全进入到了项目开发中,而你最近的代码是一直上传在你的分支上的,如果你的组长现在要你将分支的代码更新到master上,那么你要这样做:

1. 首先从你的分支切换到master:git checkout master

2. 然后拉取你原先的分支代码:git pull origin dev-branchName

3. 跟组长申请权限,权限下放之后,就可以提交代码了:git push --set-upstream origin master

4. 再切换至你的分支,进行下一版本的开发工作:git checkout branchName

------------------------------------------------------------2019.11.20更新------------------------------------------------------

.gitignore文件不生效的问题,可执行以下命令:

git rm -r --cached .
git config core.autocrlf false
git add .
git commit -m 'update .gitignore'
git config core.autocrlf true

----------------------------------------------------------2019.11.27更新---------------------------------------------------------

撤销本地文件修改(撤销git add . 操作),可执行以下命令:
撤销某个文件(以debug.log为例)的命令:

git reset HEAD debug.log

撤销全部文件的命令:

git reset -hard "HEAD^"

---------------------------------------------------------2019.12.10更新----------------------------------------------------------

今天又学到了 git 的一个新操作:git cherry-pick

意思是你可以用这句命令去获取其他分支上的提交。比如:有两个分支dev-other,dev-mine,你的mine分支是开发的主分支,bug的修复在other分支,而不巧的是你在修改bug时忘记切回other分支了,也就是说你的修改都在mine分支上,也提交了,虽然说可以通过merge的方式合并你修改的代码,但是有一定的风险,这个时候就可以用git cherry-pick

只需执行:git cherry-pick commit-version ,这个commit-version就是提交代码时产生的一个key或者id,它是这样的:

也就是你切换到你修复bug的other分支,然后执行命令:git cherry-pick 6f9c4733 ,即可把mine分支上的提交记录给拿过来,也就是说,你的other分支上也有了你修复bug的记录,很是方便

---------------------------------------------------------2020.04.01更新----------------------------------------------------------

 Git命令回退指定版本并同步到远程仓库

1.查看要回退的commit版本号(或者去github/gitlab上找到项目-开发分支-commit)并复制

git log

2.复制版本号后执行下面的命令,其中commitHashNumber就是commit的版本号

git reset --hard commitHashNumber

3.同步到远程仓库,执行下面命令,其中branchName就是你的目前的开发分支

git push -f origin branchName

--------------------------------------------------------git 删除本地分支和远程分支---------------------------------------------

1. 切换到master分支

2. 删除:git branch -d branchName(分支名)

3. 强制删除:git branch -D branchName(分支名)

4. 删除远程分支:git push origin --delete branchName(分支名)

------------------------------------------------git 删除已被删除的分支--------------------------------------------------------------

1. git remote prune origin

------------------------------------------------强制删除远程仓库的文件或文件夹------------------------------------------------

1.git rm -r --cached .

2.git commit -m"删除远程仓库全部,本地不变"

3.git push origin master

4.git add .

5.git commit -m"添加忽略文件"

6.git push origin master

------------------------------------------------重新连接远程仓库------------------------------------------------

1.git remote set-url origin xxxxxxxxxxxxxxxxxxxxx.git

------------------------------------------------新建分支并推送至远程仓库-----------------------------------

1.git branch xxx

2.git checkout xxx

3.git push -u origin xxx

------------------------------------------------切换分支时,报Permission denied问题---------------------------------

git切换分支后出现类似的错误:

error: cannot stat 'src/components/xxx/index': Permission denied

解决方案:关闭占用此项目的所有程序
1.关掉编辑器(IDE)
2.关闭项目相关的服务器
3.再次执行git命令即可

----------------------------------------------------2021.11.19 更新----------------------------------------------------------

当你拉取了项目代码,并已经开发了一部分,这个时候你发现你在master分支,并没有新建分支去开发,那么这个时候则需要git stash 暂存代码

1. 首先,执行命令:git stash 将未提交的代码存入git缓存区(这个命令会删除本地未提交的代码)
2. 然后,新建一个开发分支,执行命令:git checkout -b develop ,这时你就在新建的分支上了
3. 最后,执行命令:git stash pop 将缓存区未提交的代码再取回本地,这样就可以再执行接下来的正常操作了,而master分支依旧保持原代码未改变

---------------------------------------------------2021.11.19 更新------------------------------------

执行命令:git remote -v 可以查看链接仓库方式是git 还是 http

---------------------------------------------------更新-----------------------------------------------------

新增tag 执行命令:

1. git tag -a v1.0  (带备注的命令:git tag -a v1.0 -m 'v1.0')
2. git push origin v1.0

-----------------------------------------------------更新----------------------------------------------------

删除tag执行命令:

1.先删除本地tag:git tag --delete tagname

2.删除远程tag:git push origin --delete tagname

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐