这几天在公司,同事都在使用Gitee上传项目,进行同步,我也进行了简单学习了解了一下版本控制软件Git,挺不错的,故写个笔记记录一下。
本篇博文主要涉及的内容:
1,本地写代码,通过Git同步到本地
2,写完的项目通过Git上传至Gitee仓库
3,将Gitee仓库里面的项目巴拉到本地
PS:Git是本地的版本管理工具,Gitee是远程仓库
深吸一口气,静下心来耐心看完,我相信你一定会有所收获的!
一、本地使用Git进行同步
1,咳咳,先让我吧啦两句
当有一个项目让你修改,你会先把这个项目打包一下,然后再进行处理,若项目崩了,然后可以把压缩包解压还原成之前的项目。
就此为止,你已经会领悟到Git的精髓了!!!恭喜恭喜,撒花~~
啥是Git
?问了下Kimi,巴拉巴拉了一堆,也就是一个版本控制系统
,它的作用就是管理项目的不同版本。
打个比方:
你现在把一个项目v1版本通过Git进行了同步,然后你接着开发项目,乱改一通,完了,项目整崩溃了,你想回退到刚开始的v1版本,此时可以通过Git同步一下,就可以将项目同步至最后一次通过Git提交的项目。
2,安装Git
我就不废话了,官网下载,一路Next即可,也可以找博文看下安装教程,这里不是重点,略
git官网链接
3,选择要进行本地同步的文件夹
例如,在yy_git_test文件夹下有一个项目文件夹my_project,现在要同步这里面的内容,假如里面有一个main.cpp文件
main.cpp啥也没有,是一个空文件!仅用来测试使用
①在项目统计文件夹下右击
空白处,选择Open Git Bash here
像这样,记得看下路径是不是你想要的哈,我这里是e:/yy_git_test
②配置用户名和邮箱
git config --global user.name beyondyanyu
git config --global user.email xxxxxx@qq.com
这里的beyondyanyu用户名随便填,xxxxxx@qq.com邮箱也是随便填
你提交项目之后,通过参看提交日志,就会显示用户名和邮箱,显示的就是你填的这个哈
③初始化项目文件夹——git init
命令:git init
运行完之后,会出现一个隐藏文件夹.git
,这就表明该文件夹算是被git接管了,这个.git
文件夹别乱动!乖,别皮
④设置当前文件夹内的所有文件为提交状态——`git add .`
这里的点(.
)表示所有的文件
当然也可以指定文件git add xxx.cpp
,表示将xxx.cpp文件设置为提交状态
点击跳转至演示说明
命令:git add .
⑤填写备注信息并提交——git commit -m "此处填写备注信息"
命令举例:git commit -m "this is a test""
好了,你把你的项目已经上传到本地了
⑥查看提交历史信息——git log
命令:git log
⑦回退某个文件——git checkout HEAD xxx.xx
现在我们对这个空文件夹main.cpp进行回退测试
我们现在对这个main.cpp随便加点内容,表示经过了修改
cd my_project
,进入到my_project文件夹下,因为main.cpp在该文件夹里面
命令举例:git checkout HEAD main.cpp
再看下这个文件夹,发现内容被修改了
又变成了之前上传的空文件了,测试完成
补充④ 设置单个文件为提交状态——`git add xxx.xx`
回退至步骤④
我再重新创建一个文件a.txt
,然后就只上传该文件
命令举例:git add a.txt
与⑤一样,进行填写备注并提交——git commit -m "备注信息"
命令举例:git commit -m "only one file a.txt"
⑧显示对应字符串的文件名称——git show [log所显示的字符串信息] --stat
,搭配步骤⑥使用
首先显示提交历史信息,命令:git log
假如我们想看一下53a059b9b3a6582c32694fd9cd3这次提交的内容都有些啥
命令举例:git show 53a059b9b3a6582c32694fd9cd3c27744900940f --stat
⑨显示提交的全部文件——git log --name-only
与git log
区别在于,这个会显示每次提交的内容
⑩删除本地仓库内的文件和文件夹
1,删除本地仓库文件同时将本地副本也进行删除:git rm filename
我这里以删除本地仓库里面的main.cpp文件举例,git rm main.cpp
同时也会将本地的main.cpp给删除掉
2,删除本地仓库文件并保留本地副本:git rm --cached filename
我这里以删除本地仓库里面的a.txt文件举例,git rm --cached a.txt
4,补充
①设置Git字体大小
右击Logo,选择Options…
选择Text,再选择Select…,设置字体,然后重启Git即可生效
②下载GitHub或者Gitee上的源码
假如我相中了一个项目
点击克隆/下载
,选择HTTPS
,复制命令
在本地找个要下载到的位置,打开本地Git,运行复制的命令即可
例如:git clone https://gitee.com/beyondyanyu/my_project.git
就会将my_project这个项目给下载到E:\yy_git_test
下
5,总结步骤
首先,注册用户名和邮箱
然后,初始化
要托管的文件夹
再次,设置为准备提交状态
,提交到暂存区中
最后,填写备注并提交
二、本地项目上传至Gitee,别问为啥不是Github上!![/脸黑]
1,配置Gitee仓库
首先登录gitee,选择新建仓库
我这里创建一个名为my_Project的仓库,Readme文件要选上
因为我没啥版本可言,故选择单分支模型
PS:若选择多分支,后续的——④本地项目推送到Gitee仓库中,需要在命令中输入指定的分支名称
创建好之后像这样
点击克隆/下载
,找到SSH
git@gitee.com:beyondyanyu/my_project.git,这个是你的仓库链接
咋上来的,点我返回去
下面俩是为确保你提交的代码身份被 Gitee 正确识别,要完成的配置
git config --global user.name 'YanYu'
git config --global user.email '7870xxxxxx@qq.com'
在此之前要生成密钥,命令为:ssh-keygen -t rsa
然后获取密钥,命令为:cat ~/.ssh/id_rsa.pub
①生成RSA密钥
命令:ssh-keygen -t rsa
②获取 RSA 公钥内容,并配置到SSH公钥中
命令:cat ~/.ssh/id_rsa.pub
在Gitee的仓库上,选择管理
,选择添加个人公钥
,这里是个坑,要留意下!!!
会跳转到一个新的页面,在这个页面里面输入密钥
并且需要你输入Gitee的密码进行校验才行
像这样
③配置用户名和邮箱
运行从Gitee上获取到的这两行命令
git config --global user.name 'YanYu'
git config --global user.email '787084934@qq.com'
④关联Gitee仓库
点击克隆/下载
,在HTTPS
里面找到该命令,复制一下
https://gitee.com/beyondyanyu/my_project.git
运行从Gitee上获取到的这一行与仓库关联的命令:git remote add origin 你的HTTPS地址
命令举例:git remote add origin https://gitee.com/beyondyanyu/my_project.git
就此配置Gitee仓库已经完成
2,上传本地仓库内容至Gitee的仓库
回到我们本地电脑上,在E:\yy_git_test\my_project
下面有个a.txt
文件,我们把它上传到Gitee仓库中
①打开Git
②本地关联Gitee仓库
命令:git remote add origin 你仓库的链接
如何获取仓库链接可跳转到这里
举例:git remote add origin git@gitee.com:beyondyanyu/my_project.git
报错:error: remote origin already exists.
分析:本地仓库已经关联了一个名为origin
的远程仓库
解决:
Ⅰ 查看远程仓库都有哪些 git remote -v
Ⅱ 删除origin
这个远程仓库git remote rm origin
远程主机为origin
再次关联Gitee仓库,git remote add origin git@gitee.com:beyondyanyu/my_project.git
,不报错即可
③提交到Gitee仓库中
因为刚才关联了Gitee仓库,故直接和本地使用Git进行同步即可
先将当前文件夹内的所有文件设置为提交状态
:git add .
再填写备注信息并提交:git commit -m "备注信息内容"
,例如git commit -m "this is a test"
接下来开始往Gitee上推了,可以看到远程仓库分支
为master
,一般情况默认都是这个
④本地项目推送到Gitee仓库中
返回至 ——1,配置Gitee仓库,查看多分支情况下处理方法
命令:git push -u <远程主机名> <远程分支名>
例如:git push -u origin master
报错: ! [rejected] master -> master (non-fast-forward)
原因:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去
解决:强推,用你本地的代码替代git仓库内的内容!此方法仅限于新仓库,仓库里面啥也没有的情况哈
命令:git push -f origin master
刷新一下Gitee,可以看到把本地yy_git_test文件夹下的所有文件都上传到云端Gitee仓库中了,其中my_project文件夹下有个a.txt文件
3,将Gitee上的仓库拉到本地
命令:git pull origin master
因为在上面我们进行了仓库关联,本地已经和远程的仓库通过SSH密钥进行相关联了,故这里只需要pull下来就行
在E:\yy_git_test\my_project
下看看
好好好,啥也没!!!
原因:暂存区有东西,也就是git add .
操作的时候没后续了
解决:
Ⅰ 取消暂存区内容:git reset HEAD .
Ⅱ 取消还未加入暂存区的内容git checkout .
三、总结(即:让我拉吧两句 )
就此,博文实现了本地使用Git进行同步
以及本地项目上传至Gitee仓库
并且将Gitee上的仓库拉到本地
,差不多这些就够平常的使用了
整理了两个晚上,网上的某些博文有的有错误,emmm,本博文是一步一步调试成功后进行撰写,不求别的,留个笔记将来复习使用
若本博文有幸帮助到了某人,本人深感荣幸
加油,少一些功利主义的追求,多一些不为什么的坚持!