背景
正常情况下我们是在GitHub(Gitee是一样的,还不卡,因此下文将在Gitee仓库操作)创建一个代码仓库,然后将仓库拉到本地,在本地会生成一个和仓库名称一样的文件夹,然后在文件夹内写代码,最后使用git命令将写的代码文件上传到仓库中。
但是比如我们之前没有创建仓库,现在已有一个代码工程,想将代码上传到仓库里面,应该怎么做呢。之前笔者是创建一个名称一样的仓库,将仓库拉到本地,也就是本地有一个之前已有代码的文件夹和一个新的仓库文件夹,然后将已有代码的文件夹里面的所有内容拷贝到仓库文件夹中,然后在仓库文件夹中提交上传。这样是可以行的,但是有点low,因此在本文中记录一种新的方式。
介绍
在Git仓库中拉到本地的文件夹内会有一个.git隐藏文件夹,这个文件夹里面记录的是本地文件夹和Git仓库的关系,本文记录本地文件夹上传到一个新的Git仓库。那么本地文件夹就有2中情况,一种是有一个.git文件夹,可能的原因是可能这个文件夹是从别的仓库拉下来的,只是一直没有做管理,那个.git文件夹一直都在,只是没有用了,那么我们就将这个文件夹删除。保证我们要上传到仓库的文件夹内没有.git文件夹,是本地一个与Git仓库无关的文件夹。还有一种是没有.git文件夹的本地文件夹,也就是直接与Git仓库无关,我们要做的就是这种情况。
建议
.gitignore
要笔者说的话每个Git仓库必须要有一个gitignore文件,当然没有这个文件仓库一样使用。所以即使你不会使用或者不想使用,笔者也建议你得有一个,现在的IDE创建软件代码工程一般都会默认生成这个文件,如果你的文件夹不是IDE创建的或者其它什么原因没有这个文件,或者之前有被你删除了,笔者都建议你要保证有一个。
Git仓库就是要保存我们这个文件夹里面的文件,而往往这个文件夹中有很多文件,比如代码而言,写代码部分是要上传的,但是代码编译生成的文件往往是不需要上传的,gitignore就是做这个事情的,它可以规范出哪些文件或者文件夹要被忽略。gitignore文件语法大致如下,target/表示target文件夹和文件夹内的所有内容,*.jpg表示所有.jpg文件。被声明在gitignore文件中的文件都会被Git忽略不上传到仓库中。
.idea/
build/
classpath/
logs/
target/
out/
*.log
*.jpg
操作
本文就本地的一个文件夹来做示例,将已经存在的文件夹上传到仓库中。
本地有一个MobilePortableServer文件夹,是一个Java工程,里面有一些代码文件同时也有.gitignore(再次强调一定要有,如果没有你就新建一个,如果你不会用你可以把它空着不写内容,日后你一定会用,总之就是这个文件一定要有),同时因为笔者的这个工程已经在仓库中所以也有.git文件夹。笔者在这里先将.git文件夹和Gitee中的这个仓库删除掉。
然后在Gitee中新建一个与文件夹同名的仓库
仓库名称就是这个文件夹名称,路径那里默认会将驼峰改成全小写和连接线,笔者不喜欢被修改,因此改成了和仓库一样的名称。一般而言会对仓库进行初始化,添加一些模板文件,比如.gitignore和readme等,笔者的这个文件夹就是最早用仓库创建出来的,所以这些文件都有,即使没有也没关系可以利用创建仓库的时候创建也可以在文件夹中自己创建,当然也可以没有这些文件。笔者这里就不初始化,直接创建。
创建完成后你的Gitee中就会出现这个仓库,不过仓库里面是空的,什么都没有。记住箭头位置,这里可以复制你的仓库地址,后面会用的上。
如果你是用仓库初始化生成的gitignore文件,那么它会根据你选的语音之类的信息生成一些默认的过滤文件,但是往往没什么用,笔者总是自己创建,然后根据自己本地环境添加对应的过滤文件。笔者这里的内容就如上文贴出来的一样,相关的文件不需要上传就过滤掉。
开一个cmd窗口,切到要上传的文件夹的路径,在文件夹中看出,笔者已经将之前的.git文件夹删除了。
在cmd中一次执行以下命令
git init
git remote add origin https://gitee.com/xxx.git
git add .
git commit -m "上传代码到仓库"
git push -u origin master
执行git init后会在本地文件夹内生成一个.git文件夹,这里面会有一些git的基本配置,表示这个文件夹要与Git关联起来。
执行git remote add origin https://gitee.com/xxx.git时,需要将后面的仓库地址改成上文中你创建仓库后仓库的地址。
执行git add .后会将本地文件夹中除了gitignore声明过滤的所有文件标记为git上传文件。
执行git commit -m "上传代码到仓库"后会将上一部标记的文件提交到本地git仓库中。-m参数后面接的是此次上传的说明。
执行git push -u origin master后git会将本地仓库的文件上传到Git仓库中,也就是上文中创建的仓库。
再次进入上文中创建的仓库,可以看到你的仓库中出现了你想要上传的文件。如果仓库的文件数据不对,那么你请检查你的gitignore文件。
至此一个本地文件夹上传到新的仓库操作就完成了。
使用
新的仓库使用还是一样,比如本地文件夹中添加了新文件或者修改了已有文件,然后使用git命令上传到仓库即可。笔者在本地文件夹中添加一个test.txt和修改README.md文件。
执行git add .命令添加要上传的文件
执行git commit -m "说明",将要上传的文件提交到本地仓库
执行git push命令,上传到git仓库中。
进入仓库能看到文件已经变化,并且在文件后面可以看到修改说明