git的使用教程

本文详细介绍了Git的基本操作,包括安装配置、工作流程、版本控制、远程仓库管理、分支合并等,适合初学者快速上手及进阶学习。

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

git下载与配置

sudo apt install git 
github config --global user.name "你的github用户名"
github config --global user.email "你的github邮箱"

git工作流程

一般工作流程如下:

  • clone Git 资源作为工作目录
  • 在clone 的资源上添加和修改文件
  • 如果其他人修改了,你可以更新资源
  • 查看文件状态及修改情况
  • 提交和推送
  • 在修改完成后,如果发现错误,可以撤回提交

Git 工作区、缓存区和版本库

  • 工作区(Working Directory)

    电脑中能看到的目录

  • 版本库(Repository):.git文件夹

    Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

  • 缓存区:.git目录下的index文件

当对工作区修改的文件执行"git add "命令时,暂存区的目录树被更新

Git创建并更新仓库

1. 新建并进入文件夹

2. 初始化

git init #将当前目录作为git仓库

注意,初始化后会出现一个.git的文件夹,所有git所需要的数据和资源都放在这个目录中

3. 将文件添加到git仓库

git add *** #可以是文件、文件夹或者.
git commit -m "文件内容标注"

把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到缓存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

简单理解为,需要提交的文件修改通通放到缓存区,然后,一次性提交缓存区的所有修改。

git add .   # 将当前目录下所有文件和文件夹中的更改全部添加到暂存区,包括新建和删除的文件
git commit -am "xxxx"   # 将所有修改的文件添加到缓存区并提交到仓库,注意不受控制的新建文件是不会被提交的

Git 基本操作

  • clone别人的仓库
git  clone [url]
  • 随时掌握工作区的状态
git status 
  • 回退之前版本
  1. 只是修改了文件,没有任何 git 操作
git checkout -- xxxx  # 还原特定文件
git checkout -- *   # 还原所有文件
  1. 修改了文件,并提交到暂存区
git reset HEAD       # 所有文件回退到当前版本
git reset HEAD file  # file回退到当前版本
  1. 修改了文件,并提交到仓库区
git reset --hard HEAD^  #返回上一个版本, HEAD是指向当前分支版本的指针
git reset --hard HEAD^^ #返回上上一个版本
git reset --hard HEAD~100 #返回往上100个版本
  • 删除文件(且自动add到缓存区)
git rm file #删除工作区及仓库的文件
git rm --cached file  #删除仓库文件,保留工作区文件

Git 远程仓库

1. 添加远程仓库

首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库

在Repository name填入仓库名(和本地保持一致),其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

在本地的learngit仓库下运行命令:

git remote add origin https://github.com/你的github用户名/github仓库名.git

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

第一次推送master分支的所有内容

git push -u origin master

将会关联到远程的master 分支上,以后就可以git push不指定参数了

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程

推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上

Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令

分支管理

创建分支

增加一个分支指针dev,HEAD指向dev,工作区的文件都没有任何变化!

git branch dev  # 创建
 git checkout dev  切换
git checkout -b dev  # -b表示创建并切换

合并分支

合并特定分支到当前分支

git merge dev

删除分支

删掉dev指针

git branch -d dev

.gitignore

  • 每行代表一个忽略规则

  • 以斜杠“/”开头表示目录;
    以星号“*”通配多个字符;
    以问号“?”通配单个字符
    以方括号“[]”包含单个字符的匹配列表;
    以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

  • 一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦

git配置别名

git config --global alias.st status

–global参数是全局参数,表示这些命令在这台电脑的所有Git仓库下都有用,如果不加,那只针对当前的仓库起作用,通常全局配置文件是主文件夹下的.gitconfig

git打标签

便于恢复到特定版本

git tag v1.0 #打标签,默认标签是打在最新提交的commit上的
git tag  #查看标签
git tag -a <tagname> -m "blablabla..."   #可以指定标签信息
git tag -d v0.1 #删除本地标签
git push origin <tagname>  #可以推送一个本地标签

git出现冲突

当两个分支都进行了修改,且要merge合并时,会发生冲突,此时需要针对冲突文件,手动修改冲突的地方,再add、commit后,两个分支会自动合并

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

多人协作

因此,多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin 推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值