关于Git linux

本文详细介绍了在Linux环境下使用Git的原理和操作流程,包括Git的基本概念、服务器搭建、仓库使用方法以及如何进行分支管理和版本控制。通过实例演示,帮助读者掌握Git的核心功能,实现高效版本管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在linux下使用Git很方便。有很多关于Git的教程,在这把自己对Git的理解记录下来。

一、Git原理

Git主要的原理,个人理解就是镜像备份,如下图(Git Data Flow And Commands)所示主要分为三个部分,工作区(Working directory)、本地版本库(Local repository)、远程版本库(Remote repostitory ,git服务器上的版本),一般的数据流为:工作区->本地版本库->远程版本库。

在本地版本库时(Local repository),可以创建多个分支,默认创建了一个本地Master分支。在没有创建其他分支的时候,可以认为本地Master分支就是本地版本库时(Local repository)。

其数据交互和相关的命令如下图所示:

Git Data Flow And Commands

二、Git服务器搭建

首先在服务器Server上创建一个名为git的用户 。

$sudo adduser git  

$sudo passwd git

我们配置用户A使用git这个用户免认证登录服务器Server

1、使用 authorized_keys 方法来给用户授权

如以下步骤:

  •     生成公钥和私钥
  •     导入公钥到认证文件,更改权限

在用户A主机上生成公钥、私钥:

$ssh-keygen -t rsa

默认在 ~/.ssh目录生成两个文件:

id_rsa      :私钥

id_rsa.pub  :公钥

把公钥复制到服务器Server上:

$scp ~/.ssh/id_rsa.pub xxx@host:~ 

然后,将公钥导入到认证文件尾

$cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

修改文件权限:

$ chmod 700 ~/.ssh

$ chmod 600 ~/.ssh/authorized_keys  

2、在服务器Server用--bare选项新建一个裸仓库

$cd

$mkdir project.git

$cd project.git

$git --bare init

这时,用户就可以把它加为远程仓库,推送一个分支,从而把第一个版本的项目文件上传到仓库里了。

如在用户A主机上:

$ cd myproject
$ git init
$ git add .
$ git commit -m 'initial commit'
$ git remote add origin git@gitserver:~/project.git
$ git push origin master

3、限制 git 用户的活动范围

git 用户登入的 shell设置git-shell

$ sudo vim /etc/passwd

在文件末尾,git用户的一行,修改为:

git:x:531:531::/home/git:/usr/bin/git-shell

现在 git 用户只能用 SSH 连接来推送和获取 Git 仓库,而不能直接使用主机 shell。

 

三、git仓库的使用

主要的操作:

$cd project

$git init

$git status

$git add .

$git commit -m "Version 1.0"

$ git remote add origin git@gitserver:~/project.git
$ git push origin master

到这一步,会推送一个分支到远程版本库(Remote repostitory )。

在开发的时候,建议再创建一个分支 dev分支。这dev分支上做开发,然后合并到本地master分支,再推到远程版本库。先查看一下目前有的分支 。

$cd project

$git branch

*master

创建dev分支:

$git branch dev

$git branch

切换到dev分支:

$git checkout dev


开发....


在dev分支下,提交当前工作

$git status

$git add .

$git commit -m "Version 2.0 "

然后合并分支,先切换到master分支下:

$git  checkout master

合并dev分支:

$git merge dev

 

在以上使用中,通过 git status、 gitk(GUI程序) 、Qgit等配合使用 。

下面是使用gitk查看git:

参考:

1、http://git-scm.com/book/en/v2

2、http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013745374151782eb658c5a5ca454eaa451661275886c6000

3、http://www.cnblogs.com/tankaixiong/p/4172942.html

### 如何在Linux系统上使用Git进行版本控制 #### 安装Git 为了能够在Linux系统上使用Git,首先要安装该工具。大多数现代Linux发行版都自带了包管理器,可以通过这些工具轻松安装Git。 对于基于Debian/Ubuntu的系统: ```bash sudo apt update && sudo apt install git ``` 对于基于Red Hat/CentOS/Fedora的系统: ```bash sudo yum install git-all ``` 确认安装成功后,可以查看当前已安装的Git版本[^1]: ```bash git --version ``` #### 配置Git环境 首次设置Git时,需要配置用户名和邮箱地址,这是提交记录中的重要信息部分。 ```bash git config --global user.name "Your Name" git config --global user.email you@example.com ``` 还可以通过编辑`~/.gitconfig`文件来自定义其他全局参数,比如默认使用的文本编辑器等。 #### 初始化仓库 创建一个新的目录作为工作区,并初始化为Git库: ```bash mkdir my_project cd my_project git init ``` 这将在指定路径下建立`.git`隐藏文件夹,标志着本地存储库准备就绪。 #### 添加并提交更改 当完成一些开发任务之后,应该把改动加入暂存区再正式保存至历史记录里。 假设有一个名为`README.md`的新文档被添加到了项目根目录,则执行如下操作将其纳入跟踪范围之内: ```bash echo "# My Project" > README.md git add README.md git commit -m "Add initial project structure and readme file." ``` 每次做出有意义的变化都应该重复上述过程以保持良好的变更日志维护习惯[^3]。 #### 查看状态与差异对比 随时可以用简单的命令来获取关于工作树状况以及最近一次提交以来所做修改的信息概览: ```bash git status git diff ``` 这两个指令有助于理解哪些文件发生了变化及其具体内容的不同之处。 #### 创建分支与合并 利用分支特性可以在不影响主线的前提下探索不同的解决方案或尝试实验性质的功能扩展。 新建一个叫作feature_x的分支并且切换过去继续干活儿: ```bash git branch feature_x git checkout feature_x # 或者更简洁的方式一步到位 git checkout -b feature_x ``` 待完成后返回主干master实施融合动作: ```bash git checkout master git merge feature_x ``` 如果有冲突发生则需手动解决后再重新commit更新后的成果。 #### 推送远程同步 通常情况下个人开发者会将自己的源码托管于像GitHub这样的在线平台之上以便分享给他人协作交流或是备份之用。 先关联远端服务器上的空白repo链接(假定URL为https://github.com/user/repo.git),接着推送本地commits上去形成完整的线上副本: ```bash git remote add origin https://github.com/user/repo.git git push -u origin master ``` 以后只需简单地调用`git push`就能快速上传最新的进展给云端伙伴们共享啦[^2]!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值