Linux 分布式版本控制系统git,手把手教向gitee上推代码

目录

什么是git?

安装git

 创建版本库

工作区和版本库、

向版本库中添加文件

 版本回退

远程操作


什么是git?

 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

linux是一个开源软件,第一版本,第二版本不同怎么控制?

 Git 与常用的版本控制工具 SVN, Subversion 等不同,它采用了分布式版本库的
方式,不必服务器端软件支持。

 SVM就相当于分布式中讲的单点,但分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。他们的代码,资源都相同,就是三个相同的副本。

安装git

1.用git命令查看是否已安装
git --vertion
2.安装
sudo yum install git//centos
sudo apt-get intall git//ubuntu
 3 进行配置,指定使用git的账号和用户名
git config --global user.name "Your name"
git config --global user.email "Your email“

 创建版本库

版本库又称仓库,仓库中存放被git管理的文件,每个文件的修改、 删除,git都能够跟踪,可以方便追踪历史。

创建仓库方法:

 创建成功,多了.git目录,用来跟踪管理版本库的,不能删除!

工作区和版本库、

工作区指工作目录,而工作区有一个隐藏目录.git,这个不算工作区,而是Git的版
本库,该文件夹就是用于管理当前目录中所有文件的改动的。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存
,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫
HEAD

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

向版本库中添加文件

git add filename
git add --all .//添加所有文件
工作区中的文件是可以被追踪的,但是只有告诉git哪些文件需要追踪,它才会显式的去追踪
该文件,否则git永远会在你提交的时候告诉你工作区还用哪些文件处于Untracked状态 而a
dd命令就是用来显式告诉git哪些文件从此时开始追踪。
git commit
命令保存某个文件的修改,记录下该文件当前快照。然后用 commit命令向分支上提交
位于分支上的每个点都是一次commit留下的。当然回滚的时候也是根据需要回滚到指定的点
上。
例:
前提:在刚创建的repo_git目录(或子目录)下建立文件,如 “zn.txt”,添加内容
步骤: git add README.txt # 没有输出
            git commit –m “A description for the…”
            git status #查看状态

 版本回退

前提: 后续开发需要修改之前的文件,如zn.txt, 想退回之前的版本
status命令是用来查看当前工作区状态的 ,也就是说它会把 当前工作区的所有文件状态
地分支上最近一次的提交 进行比较,并列出所有做出的修改条目。
git status
diff命令也是用来查看当前状态的,只是它不同于status,它比较的是 工作区 暂存区 之间
的区别。
git diff

查看历史提交信息

git log
reset命令能够实现回退历史版本。
git reset 
git reset –-hard HEAD^ # 退回后新的不存在了,若git log还存在可用版本号回退
git reset –-hard 版本号(来自git log)
git reflog # 记录每一次更改,可找到最新版本

 

 再去看zn.txt里面的内容的时候,就是上次的了,因为回退了

 

reflog 记录每一次修改

撤销修改(删除)
1. git checkout -- filename ,回到最近一次git commit或git add时的状态。
若未放到暂存区,回到和版本库一样的状态
若放到暂存区,则回到添加到暂存区后的状态
2. git reset HEAD filename:撤销暂存区中的内容(git add)
3. git rm filename:删除提交到版本库中的文件 (错删,则git checkout -- filename
从版本库恢复)

远程操作

前提:已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让
这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其
他人通过该仓库来协作
步骤:登录github(gitee),创建和项目同名repository
例如:git remote add origin git@github.com:Coder-Peng/repo_git.git
git push -u origin master #第一次提交本地库

建立仓库

 

我已经用学校分的虚拟机上安装了git

设置用户名和邮箱(这里我不明白是不是必须和gitee上的用户名和邮箱对应,因为gitee给的教程是,会问老师)

 

 创建仓库

 创建文件-》添加到暂存区(没有输出)-》提交master分支

 

 

 这是我文件中的内容,我开始回退

 因为头指针head一直指向最新的,所以一直回退,我回退到第一次提交的时候了

查看历史修改信息

 ‘我修改了文件内容,但是我不提交到暂存区更没有提交到分支

撤销(删除) 

以此来检验checkout 回到哪里了?

没有放到暂存区,回到了和版本库一样的状态

如果放到了暂存区,也就是使用了add命令了,则回到添加到暂存区之后的状态

让我们来试试吧

 

 以上是我没有提交到暂存区的情况,它回退到了和版本库一样的状态(从版本库拿到最新的版本),也就是我修改的内容“加油复习考试”这句话删除了,不见了

 只要我使用了add命令提交到了暂存区,会不会退一点影响都没有,因为他是回退到了添加到暂存区一样的状态

问老师:不明白

 远程操作,向gitee上推代码
 

git remote add origin git@gitee.com:star-insomnia-zhang-na/myproject.git
git push -u origin master 第一次提交本地库

要选中SSH

 你想直接往gitee上推代码,是推不了的,提示的错误也说你没有公钥,

服务器并不能让任何人向我们的git服务器上推送代码,只能让有凭证的人向服务器推送,git本地和gitee服务器之间是通过ssh对称秘钥来完成两者的身份确认的


ssh-keygen -t rsa -C "2091691459@qq.com"通过这个来获取公钥私钥

 

 点击怎样生成公钥,gitee给了详细介绍

 

 查看公钥私钥

 

这样复制上去公钥是一段一段的  不行  输入的密码是正确的但一直显示指纹不对 

解决方法 ----------不太理解这样为啥就行了,

 在终端输入

ssh -T git@gitee.com、

首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功。

成功了 

 不要按照gitee上的帮住手册整部署公钥,这样不能往上推代码,试了好久,耽误了好长时间,把部署公钥删除之后添加公钥

 在这里

 

我用了一上午的时间终于完成了向gitee上推程序,你也试试吧,有很多细节需要注意,一定要耐心解决呀

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能边缘探索记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值