Git

本文是一篇Git入门教程,详细介绍了Git的用途、基本操作,包括初始化本地仓库、常用命令、区域转换、忽略文件、版本切换、删除操作、分支管理和解决冲突。还讲解了如何与GitHub交互,如本地连接、push、pull、clone及解决冲突。最后探讨了GitHub与IDEA的集成,教你如何在IDEA中上传和克隆项目。

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

Git

一、简介

1. 是什么

最先进的版本控制系统

Bitkeeper 是最初的版本控制器, 是商业用途, 后来在开放linux时被破解

  • git以行为单位, 进行检测, 控制

  • svn(也是一个版本控制系统) 为集中式

    • 依赖中央仓库, 一旦中央仓库出现问题, 风险太大
  • git为分布式

    • 每个人都是一个节点
    • 也拥有中央仓库, 方便合并
2. 作用
  • 版本还原
  • 分支管理 (很快, 只需移动指针)
  • 协同开发 (自动合并, 手动解决冲突)
  • 版本记录
  • 历史追踪
  • 权限管理
3. 设置Git账户
命令	含义
git config --list											查看所有配置
git config --list --show-origin				查看所有配置以及所在文件位置
git config --global user.name xxx			设置git用户名
git config --global user.email xxx		设置git邮箱
git init															初始化本地库
git config core.autocrlf false				取消换行符转换的warning提醒

二、git的基本操作

1. 把一个目录初始化成一个本地仓库
1. 新建一个本地仓库, 也就是一个文件夹
2. 执行 git init命令
3. 本地仓库会多一个.git的隐藏文件夹
4. 所有命令要在初始化过的文件夹目录下操作
2. 常用命令
命令	作用
git status									查看本地库的状态(git status -s 简化输出结果)
git add [file]							多功能命令: 1. 开始跟踪新文件 
																			2. 把已跟踪的文件添加到暂存区 
																			3. 合并时把有冲突的文件标记为已解决状态
git commit –m “xxx” [file]	将暂存区的文件提交到本地库,-m 后面为修改的说明
3. 三个区域转换
  • 工作区(Working Directory):就是你电脑本地硬盘目录
  • 本地库(Repository):工作区有个隐藏目录.git,它就是Git的本地版本库
  • 暂存区(stage):一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

在这里插入图片描述

4. 忽略文件
  • 一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。
  • 通常都是些自动生成的文 件,比如日志文件,或者编译过程中创建的临时文件等。
  • 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件的模式。
1. 创建一个.gitignore文件
vim .gitignore

2. 更新到暂存区
git add .gitignore

3. 上传本地库
gir commit -m ".gitignore"
5. 版本的切换
  • git reset --hard HEAD^
  • git reset --hard HEAD~n
  • git reset --hard [具体版本号,例如:1f9a527等]
相关命令:

命令																	作用
git log															以完整格式查看本地库状态(查看提交历史)
git log --pretty=oneline						以单行模式查看本地库状态
git reset --hard HEAD^							回退一个版本
git reset --hard HEAD~n							回退N个版本
git reflog													查看所有操作的历史记录
git reset --hard [具体版本号]				回到(回退和前进都行)指定版本号的版本,
git checkout -- [file]						 从本地库检出最新文件覆盖工作区的文件(文件还没有提交到暂存区, 否则无效)
git reset [file]  或者 git restore –staged [file]	从暂存区撤销文件
git restore <file>									放弃在工作区的修改(还没有提交到暂存区)
git rm --cache [file]								撤销对文件的跟踪.

注意:

  1. 在 Git 中任何已提交的东西几乎总是可以恢复的

  2. 任何你未提交的东西丢失后很可能再也找不到了

6. 删除操作
  • 文件夹内删除
  • git add .
  • git commit -m “delete”
7. 比较文件

减号和加号分别代表两个对比的文件!

  • $ git diff
    • 将工作区中的文件和暂存区进行比较
  • $ git diff HEAD
    • 将工作区中的文件和本地库当前版本进行比较
  • git diff --cached
    • 查看暂存区和本地库最新提交版本的差别
8. git目录

在这里插入图片描述

9. 分支操作
命令	描述
git branch [分支名]							创建分支
git branch -v										查看分支,可以使用-v参数查看详细信息
git checkout [分支名]						切换分支
git merge [分支名]								合并分支;
																将merge命令中指定的分支合并到当前分支上
																例如:如果想将dev分支合并到master分支,那么必须在master分支上执行merge命令
																如果在dev分支上面,对一个文件做了修改,这个时候master分支上面对应的文件是没有修改信息的。
																因此需要将分支合并!
																
git branch –d[分支名]						删除分支
																注意:必须切换到master,才能删除,不能自杀!
																
git checkout –b [分支名]					新建并切换到当前分支
git log --oneline --decorate --graph --all	它会输出你的提交历史、各个分支的指向以及项目的分支分叉情况

概念:

  • 不使用分支,就是人与人之间协作;
  • 使用分支,就是小组与小组之间的协作;
  • 从主干中拉取分支,开发完成,将工作,合并到主干。
10. 分支冲突

问题: 当同时编辑一个文件时, 主分支和其他分支同时修改了同一行, 则合并时会引起冲突.

解决: 编辑冲突的文件,把“>>>>>>>>>”、“<<<<<<”和“========”等这样的行删除,编辑至满意的状态,提交。

提交的时候注意:git commit命令不能带文件名。

三、github

1. 本地连接Github
1. 创建一个密钥对
ssh-keygen
2. 复制公钥
catch ~/.ssh/id_rsa.pub
3. 粘贴到github中的ssh keys中
4. 测试 
ssh -T git@github.com

流程:

从本地和github通讯, 有两种方式:

1. 使用https
2. 使用ssh

推送:

1. 先建一个远程仓库
2. 给远程仓库起个别名
3. 推送

新员工入职:

1. 拿到所有代码

协作冲突:

当两个人修改了共一个行会发生冲突.

谁先push, 谁成功!

解决:

1. 后push要拉倒最新的版本()
2. 然后解决冲突
2. push
本地库推送到GitHub
①准备本地库
②在GitHub上创建一个仓库
③增加远程地址
git remote add  <远端代号>   <远端地址> 
 								<远端代号> 是指远程链接的代号,一般直接用origin作代号,也可以自定义;
								<远端地址> 默认远程链接的url;
								
④本地库推送到远程库
git  push  -u  <远端代号>    <本地分支名称>
 							 <远端代号> 是指远程链接的代号;
 							 <分支名称>  是指要提交的分支名字,比如master;
 							 
我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

⑤查看远程分支
		git remote –v
3. pull
本地库抓取远程库
如果远程库的版本新于当前库,那么此时为了使当前库和远程库保持一致,可以执行pull命令
git pull <远端代号>  <远端分支名>;

例 git pull origin  master
4. clone
实际的情况可能是刚开始做项目的时候,需要从远程库将项目先整到本机。
执行命令:git  clone   <远端地址>   <新项目目录名>
 										 <远端地址> 是指远程链接的地址;
										 <项目目录名>  是指为克隆的项目在本地新建的目录名称,可以不填,默认是GitHub的项目名;
命令执行完后,会自动为这个远端地址建一个名为origin的代号。

例 git  clone  https://github.com/user111/Helloworld.git   hello_world
5. 解决冲突

尽量避免冲突:

  1. 尽量不要修改同一文件
  2. 如果多个人修改同一文件, 最好的办法, 找一个专人负责修改公共文件.
  3. 每次写代码之前, 先更新到最新 版本. 上班第一件事, 先pull
  4. 上传值代码之前, 也要先pull. 先把产生的冲突先解决, 再上传.
6. 邀请成员

在这里插入图片描述

7. 总结

在这里插入图片描述

四、github与idea

1. 上传到github
  1. 在idea中找到setting , 搜索git, 找到路径, 并关联github账号

  2. vcs —> import into version control —> share project on github

  3. 勾掉.idea

  4. vcs —> git —> add —> push

2. clone 到idea
  1. checkout from vresion control
  2. 输入clone地址
  3. 点更新/pull
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值