Git和协同开发

本文深入探讨Git的使用,包括Linux作者Linus创建Git的背景,Git与SVN的对比,以及如何在本地和远程仓库中进行版本控制。文章详细讲解了Git的基本配置、常用命令、工作区与暂存区的概念,以及如何通过分支管理和协同开发。

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

Git和协同开发

可以在百度搜索廖雪峰

集中式分布式区别

origin远程仓库

1. 了解Git

Linux作者是:Linus 林纳斯

Linux在90年开源之后,来自世界各地的开发者开始帮助Linux发展,支持它的开源行动。

开发者们如果需要给Linux添加一个补丁或者一个功能或者修复一个bug,这时候他们都会给Linus发一个邮件,告知他们的版本和原版本的差异(diff文件),然后Linus在实际添加以及综合考量之后,会将此代码并入Linux核心代码中。

这个过程非常的麻烦,所以早就有开发者提出希望能够使用版本控制系统,SVN,Bitkeeper…但是Linus不喜欢甚至讨厌市面上的一些免费版本控制工具,所以一直没有采用,后来有一家公司BitMover它的产品Bitkeeper免费提供给了Linux开发团队使用,美其名曰支持开源行动。

但是在使用了一段时间之后,其中有一位Linux开发社区的人员(梁山好汉),将Bitkeeper进行破解,想要研究其源码,然后被BitMover发现了,所以最终导致BitMover不再提供Bitkeeper给其使用。

Linus消失了一段时间,再次出现时,Git出现了。

Github在2008年基于Git创建,在其后的几年成为了全球最大的代码托管平台。

分布式的版本控制系统,比之SVN的集中式管理要先进很多。(公司里也有很多还在采用SVN,但是Git一定是一个趋势)

2. 掌握Git的搭建和初始化配置

  • 下载最新版即可 https://git-scm.com/download/win

    • 老版本下载请前往github
  • 傻瓜式安装即可

  • 在任意空白处位置右键 -> Git Bash Here(当你打开的时候 直接是在当前目录打开)

    option 进去 可以修改中文

    当你运行的时候 右键打开 同时在桌面新建一个learngit的文件夹

在这里插入图片描述

  • 进入到Git(支持Linux命令)命令行之后,第一次使用可以配置一下全局初始配置(配置本机的使用人)
    • git config --global user.name "你的用户名(推荐写Github帐号或者码云帐号)"
    • git config --global user.email "你的邮箱(推荐写Github帐邮箱号或者码云帐号邮箱)"

3. 掌握Git的常用命令

版本控制系统(version control system vcs):

可以管理版本,我们自己编写Java代码,今天编写了一版,明天可能对其进行更新,后天又可能需要回退到之前的内容,所以版本控制的重要性不言而喻。

  • 创建一个仓库(版本库) 文件夹
  • 进入此文件夹,然后在此处打开Git命令行
  • 然后执行git init进行Git仓库的初始化
    • 它会自动新建一个.git隐藏文件夹,实际上版本控制的细节内容就隐藏在此文件夹内(不需要动它)
    • 它会将当前的文件夹自动标注为主干master(类似于时间线)
  1. 查看仓库的状态:git status

    他说不是一个git的仓库:
    在这里插入图片描述

    –版本控制初始化git init

在这里插入图片描述

在这里插入图片描述

–添加一个内容(你可以在文件夹中建立一个.java文件)之后:

在这里插入图片描述

  1. 给文件添加追踪(track):git add 文件名/文件夹

    如果你想管理这个文件 先追踪

在这里插入图片描述
3. 将追踪的文件提交到版本库(这样就会建立一个版本):git commit -m "提交注释/说明"

就是相当于你给你的文件做了备份

  1. 查看本分支的提交记录:git log

在这里插入图片描述

head表示当前在哪

它的升级版参数为:git log --pretty=oneline

在这里插入图片描述

在这里插入图片描述

  1. 查看操作记录:git reflog

  2. 如果你在工作区区的内容修改了,和当前版本(Head指向的版本)内容不一致了,可以进行撤销修改

    git checkout -- 文件名

  3. 当你的内容修改添加到了暂存区之后,然后你又修改了,这时候怎么撤回

    • 先将工作区的内容可以撤回git checkout -- 文件名
    • 先将暂存区的内容撤回git reset HEAD 文件名 可以将暂存区的内容撤回到工作区
  4. 撤销版本:

    (你改完啦但是想要原来的版本)在你窗口不关闭的前提下

    1. 撤销一个版本git reset --hard HEAD^
    2. 撤销两个版本git reset --hard HEAD^^
    3. 撤销更多个版本git reset --hard HEAD~3 表示回退3个
    4. 回退到指定的版本git reset --hard 版本id(commitID id不用都复制 复制一个唯一数据就可以)
  5. 查看工作区修改的内容和版本库的区别:

    git diff 文件名

  6. 删除文件:

    如果是误删除,可以通过刚才所学的工作区撤回实现找回

    如果确定要删除,不需要添加到暂存区了,直接删除版本库内容即可git rm 文件名,然后再执行提交。

工作区和暂存区

**工作区:**我们项目所在位置,或者可以理解为.git文件夹所处的目录。

版本库:.git文件夹就是实际的版本库

可以同时修改多个到暂存区 再从暂存区中统一提交

**暂存区(stage):**用来追踪我们工作区的文件的(**git管理的是文件的修改 并不是直接管理文件**)

在这里插入图片描述

4. 掌握基于Git的协同开发

远程仓库

中央系统(远程仓库):你可以选用公司内部服务器搭建,也可以采用在线的托管平台,例如:码云或者github

在这里插入图片描述

  • 创建一个码云、github帐号(通过邮箱验证)

  • 在码云上建立中央仓库(远程)

    点开码云 右上角 +号

  • 可以对远程仓库进行开发人员绑定,还可以设置码云帐号和本地计算机绑定

    • 通过加密协议:ssh

    • 在本地Git命令行执行:ssh-keygen -t rsa -C "你的邮箱" 回车三次

    在这里插入图片描述

    • 找到.ssh文件夹,然后去打开rsa_pub全选复制生成的秘钥(公钥)

    • 然后找到码云设置界面 去添加此公钥,未来就可以进行本地推送了

  • 建立远程仓库和本地仓库的绑定

    git remote add origin git@gitee.com:Charles7c/learngit.git

  • 可以选择将本地的仓库内容推送到远程仓库

    git push -u origin master

  • 未来再推送内容,记得先将本地的提交好,然后再推送

    git push

上面的情况适用于线上是干净得仓库 把本地的推到线上

本地没有文件 但是你需要下载一下:

复制一下ssh

在这里插入图片描述

如果你本地没有仓库,你知道远程仓库上有代码,你想将此代码拿下来怎么办?

git clone 仓库地址
在这里插入图片描述

开发中 你有新的代码需要上传推送

如果你们在开发过程中,想要提交代码前,或者知道其他人已经更新了,需要执行拉取命令:

git pull

分支branch

创建并切换分支:git checkout -b 分支名 它会以当前的分支版本为基点继续开启新的分支

在这里插入图片描述

创建分支:git branch 分支名

切换分支:git checkout 分支名

查看所有分支:git branch

合并分支:

  • 切换到“主干分支”
  • 然后执行git merge 要合并过来的分支名 如果没有特殊情况(冲突),它会采用快速合并(不推荐)。
  • 推荐添加一个参数--no-ff表示取消快速合并

删除分支:git branch -d 分支名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值