在Linux环境下,如果想要使用git工具来管理我们的文件,操作的方法是什么?

我们以一个文件夹内容举例
在这里插入图片描述
如果想让此文件夹里面的内容都进行版本管控,应该如何操作?
欲知详情,请先看我下表中的操作!

一、建立起本地的版本管控

步骤命令备注
先切换到需要管控的文件夹上面cd code2
初始化(创建本地版本控制仓库)git init
添加文件到仓库的暂存区git add 添加某一个文件 git add . 添加所有的文件
从暂存区移除文件git rm --cached 把提交的文件移除暂存区(如果想移除的话)
查看版本控制的状态git status不知道怎么做时都可以用这条命令查看当前状态
配置用户名和邮箱git config --global user.email “frued@126.com”                               git config --global user.name “jackfrued”第一次使用前需要进行配置,否则提交会报错
将暂存区的文件同步到本地仓库git commit -m ‘项目初始版本’-m表示的时message说明,后面即为说明内容
查看提交日志git log
用暂存区恢复工作区git restore 当文件内容误删除或者误修改时可使用
版本回退git reset --hard d656a6–hard表示回退后,工作区暂存区和回退版本一致,当前指向的也是回退的版本
查看过去和将来的提交日志git reflog版本回退后如果又向改回以前版本,可用此命令查询版本的提交代码

以上表中的操作主要是在本地把版本管控起来了,如果还想把代码绑定在公司的Git私服(绑定远端服务器),且继续看下面中的操作:

二、建立仓库

此处用gitee代替公司的Git私服来讲解:
建立仓库的方法如下图所示
在这里插入图片描述

三、配置本地和gitee服务器之间的免密传输(只需配置一次)

配置免密传输的步骤如下:

1、首先在linux系统里面生成非对象加密的公钥和私钥对

ssh-keygen -t rsa -b 2048 -C "jackfrued@126.com"

2、然后取到存贮密钥对的隐藏文件夹:

 cd /root/.ssh

3、打开公钥文件复制里面的内容:
在这里插入图片描述
4、将公钥里面的内容复制到gitee网页里面的ssh公钥位置里,具体操作步骤如下面一系列图片所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,和码云之间的免密传输就配置好了,之所以要配置这个,和码云之间的传输待会使用的是ssh传输,必须要配置,否则不能上传。

四、绑定远端服务器

首先复制gitee仓库的ssh地址
在这里插入图片描述
然后使用如下命令进行远程连接:

git remote add origin git@gitee.com:jackfrued/welcome2git.git 

建立好了之后可以使用如下命令查看:

git remote -v

五、将代码上推到服务器

git push -u origin master

六、从服务器上克隆代码到本地

当文件被误删除、或下载本地没有的代码,可以根据需要执行以下类型的克隆语句

命令区别
git clone git@gitee.com:jackfrued/welcome2git.git克隆代码到本地,clone后面是仓库的ssh地址,此种方法的文件名称和库名称保持一致
git clone git@gitee.com:jackfrued/welcome2git.git code文件名称为code
git clone --depth=1 git@gitee.com:jackfrued/welcome2git.git code克隆最新的几个版本,depth=1表示克隆最新的版本

七、获取服务器上的代码

当服务器文件有更新,可以直接使用以下语句得到文件的更新,前提是没有文件冲突

git pull ---> git fetch + git merge
 默认:fast-forward

八、解决冲突的方法

多人维护一个文件时,可能会发生对同一块内容进行变更和修改,此时就会发生文件冲突,git push会报rejected错误和git pull命令会报CONFLICT错误,如果遇到这种情况,请按照以下步骤进行解决:
1、首先使用如下命令检查冲突发生的位置:

git diff

2、找当事人协商解决有冲突的文件,确认最终结果后,再用vim编辑修改
3、重新提交
4、重新将文件push到gitee服务器

git push
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐