git原理及其常用命令介绍

本文详细介绍Git版本控制系统的基本操作,包括安装、配置、仓库管理、分支处理等关键步骤,并提供了实用的冲突解决技巧。

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

介绍:

git是一个分布式的版本管理工具,在我的理解里,git不存在主仓库,任何一个节点都可以当成主仓库

1、centos环境下yum安装git

    yum -y install git


2、git 用户设置
   git config -h //查看帮助
   git config --list //查看git配置
   git config --global user.name "Your Name Here" //设置全局git用户名
   git config --global user.email "your_email@example.com" //设置全局git邮箱


3、创建仓库

         git init --bare testRepo.git

         注意:bare参数表示主仓库没有工作空间(也就是你上传到仓库的文件是在目录中看不到的)

4、克隆仓库

      git clone ssh://root@10.12.13.14/usr/local/gitroot/testRepo.git


5、提交“readme”到主仓库目录

   a> echo "this is first file" >> readme
   b> git add readme 
   c> git commit -m  "this is first commit" readme

   d>git push origin master


6、git解决冲突

   vim readme //编辑冲突文件,编辑完成保存

   git status //查看一下文件状态

   git  add readme//增加readme 标记冲突文件为不冲突

   git commit -m "resolve conflict "

   

7、git remote 

      介绍:remote是一个非常好的功能,因为git是一个分布式的版本管理工具。所以的仓库都是独立的,如果想把两个仓库之间进行关联就必须使用remote,例如:a和b同时克隆宿主仓库,a修改的coding需要供b使用,但是a修改的coding如果提交到主仓库又有一定的风险,这时b就可以直接remote到a的仓库中pull出a的coding在bending使用,而跳过了主仓库。

      应用:(注意:remote只是做连接的作用,连接的仓库必须实际存在才能使用

             git remote add test13 ssh://root@10.12.13.13/usr/local/gitroot/testRepo //建立remote连接

             git remote -v //查看远程连接信息

             git push test13 master //push代码到test13主分支上

             git pull test13 master  //从test13上pull代码


8、git branch

      介绍:创建分支

      应用:

                git branch brn1.0   //创建本地分支brn1.0   

                git branch -v  //查看分支

                git push origin brn1.0 //上传分支到远程仓库中

                git checkout --track refs/heads/brn1.0  //切换分支

                git pull  //下载远程分支

                git ls-remote //查看远程仓库分支

git push origin --delete brn1.0 //删除远程分支

                           

9、git merge

      介绍:合并分支

      应用:

               git merge brn1.0 //合并brn1.0 到当前分支上

               git push //把合并结果上传到主仓库中

               

10、git rebase 

介绍:rebase意思是为重新定义起点,例如:

   

        应用:

                 git checkout brn1.0 //切换到brn1.0分支上

                 git rebase master brn1.0 //分支移动到主干的最后的起点

                 git push //上传

11、git reset 

        git reset --hard HEAD~3  //会将最新的3次提交全部重置,就像没有提交过一样


12、git stash

    介绍:使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码 commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用'git stash'就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修 Bug,等到修完Bug,提交到服务器上后,再使用'git stash apply'将以前一半的工作应用回来。也许有的人会说,那我可不可以多次将未提交的代码压入到栈中?答案是可以的。当你多次使用'git stash'命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,'git stash list'命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用'git stash apply stash@{1}'就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用'git stash clear'来将栈清空。
在这里顺便提下git format

在这里顺便提下git format-patch -n , n是具体某个数字, 例如 'git format-patch -1' 这时便会根据log生成一个对应的补丁,如果 'git format-patch -2' 那么便会生成2个补丁,当然前提是你的log上有至少有两个记录。

    应用:

       git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。

git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。

git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。

git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

git stash apply stash@{0} //应用回当前的工作空间

          


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值