序言
最近在上传项目到gitee(github)的时候,总是会遇到各种各样奇奇怪怪的BUG,导致最终无法正确上传项目,于是终于摸索到了一套最简洁和便利的方式利用Git命令行的方式将代码从本地仓库上传到远程仓库。
(1)命令总结:
#1. 初始化一个git仓库
git init
#2. 将文件添加到暂存区
git add .
#3. 将暂存区的文件提交到本地仓库
git commit -m "提交说明"
#4. 到gitee新建一个仓库,
git config --global user.name "zhankun"
git config --global user.email "xxx@user.noreply.gitee.com"
#5. 将本地代码仓库关联到 gitee 上
git remote rm origin #第二次提交先删除,再关联
git remote add origin 仓库地址 #第一次提交直接关联
#5. 将代码由本地仓库上传到 gitee远程仓库
git pull --rebase origin master #代码合并
git push -u origin master #把当前分支 master 推送到远程
(2)注意事项:
- 如果上传的文件里面有.git文件,一定要将.git文件全部删除,不然无法重新上传。
- 如果在gitee上新建了一个项目,发现文件传错了,可以先将所有文件删除,在本地重新建立git仓库,重新上传。但是需要关联到之前建立的gitee仓库。
- 关联gitee仓库,如果仓库不是空的,需要先删除关联,再重新关联。也就是git remote rm origin再git remote add origin 仓库地址
- 如果在原来建的gitee仓库上传新的代码,那么就需要先合并再上传。即使已经删除了原来gitee仓库的文件,也需要合并。
(3)git常用命令
git status #用于显示工作目录和暂存区的状态
第一步、初始化git
进入到你需要上传的项目的目录下,右键找到Git Bah Here
(安装了Git的小伙伴一般都是可以很轻松得找到),目的是可以直接在当前目录进行初始化,无需再cd
寻找目录,麻烦!
打开命令行后就会自动定位到该目录,然后输入Git初始化命令。
git init
输入完以后就可以看到该目录下多了一个隐藏文件.git
(前提是必须将不显示的隐藏文件显示出来)
第二步、将本地项目工作区的所有文件添加到暂存区
# 小数点 “.” ,意为添加文件夹下的所有文件;也可以将 “.” 换成具体的文件名,如果想添加项目中的指定文件,那就把 “.” 改为指定文件名即可。
git add .
第三步、将暂存区的文件提交到本地仓库
# 注释的作用是告诉下载和浏览的用户你这次提交代码所改变的地方
git commit -m "注释说明"
第四步、在gitee(github)上新建远程仓库
![[Pasted image 20211014151624.png]]
第五步、将本地代码仓库关联到 gitee 上
git remote add origin 仓库地址
![[Pasted image 20211014151738.png]]
仓库地址就是复制这里的地址。作用是将本地的仓库关联到远程仓库。
在这一步时如果出现错误:fatal:remote origin already exists
,解决方法如下:
- 先输入
git remote rm origin
- 再输入
git remote add origin 仓库地址
第六步、将代码由本地仓库上传到 gitee远程仓库
6.1、获取远程库与本地同步合并
如果远程库不为空必须做这一步,否则后面的提交会失败。
# 不加这句可能报错,原因是 gitee 中的 README.md 文件不在本地仓库中。
# 可以通过该命令进行代码合并
git pull --rebase origin master
6.2、 把当前分支 master 推送到远程
执行此命令后有可能会让输入用户名、密码
git push -u origin master
执行完之后如果无错误就上传成功了,需要提示的是这里的 master 是 gitee默认的分支。
- 如果你本地的当前分支不是 master,就用git checkout master命令切换到master分支。
- 如果你想用本地当前分支上传代码,则把第6步的命令里的 master 切换成你的当前分支名即可。
参考链接:
[1] (超详细)使用git命令行将本地仓库代码上传到gitee/github远程仓库
[2] Git错误:warning: adding embedded git repository: hint: You’ve added another git repository inside your current repository.