Git常用命令

本文详细介绍了Git的核心概念,包括版本控制系统的工作原理、本地和远程仓库的区别,常用命令如初始化、添加、提交、删除、分支操作、合并以及解决冲突的方法。此外,还讲解了.gitignore文件的作用和Git工作流的基本步骤。

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

一、Git简介

版本控制系统(VCS)是将『什么时候、谁、对什么文件做了怎样的修改』这样的信息以版本的形式保存并进行管理的系统。

简单来说,版本控制系统会去记录它所管理的文件的『历史版本』。

1、git相关术语

  • 本地仓库:你自己电脑上的一个目录,将这个目录设置为git的本地仓库,自己的代码必须都在本地仓库中操作。只有自己能访问
  • 远程仓库:公司的git私服/网络上的git仓库服务(github,gitee)。所有人都能访问。远程仓库只能接收本地仓库中的数据

2、git常用命令【重点】

  • Git 的配置

    在使用 git 之前需要使用 config 命令配置下用户名和用户邮箱,提交代码时让git知道是谁在操作

    git config --global user.name "帐号"
    git config --global user.email "zh"
    git config --global push.default simple
    git config --global core.editor notepad
    

    配置内容保存在C://Users\Administrator/.gitconfig

  • 创建本地版本库(初始化)

    在电脑的任意位置建一个目录(hello)。进入到该目录中输入如下命令:

    git init
    

    命令执行完后hello目录中会有一个.git目录。这个.git目录才是你的本地版本库

    hello目录中除了.git以外的部分称为工作区,你的代码必须放在工作区中才能提交到本地版本库

    所有放在工作区中的文件,git才能够时时检测其状态

  • 将要提交给版本库的文件添加到版本库的暂存区

    如果一个文件已在暂存区则不用重复添加

    git add 文件名
    或
    git add 目录名
    

    绿色+: 文件添加到了暂存区

    绿色勾:文件添加到了暂存区并提交到了版本库,此时工作区中的文件与版本库中的文件是一模一样的

    红色!: 本地工作区中的文件与版本库中的文件不一致

    黄色笔:本地工作区中的文件内容进行了修改,与版本库中的文件不一致

  • 提交到版本库

    git commit [file1] [file2] ... -m [message]   ##必须添加描述信息,如果是文件夹,文件夹不能为空 
    
  • 删除版本库中的内容

    将工作区中对应的内容删除,然提交到版本库即可。【一般这样用】

    git rm 用于删除文件,删除行为分为『弱删除』和『强删除』。

    • git rm --cache 是『弱』删除。

      它表示让 Git『不再监管』某文件/文件夹,而该文件/文件夹在磁盘上『仍存在』。

      git  rm "hello.txt" --cache
      
    • git rm 是强删除

      它表示告知 Git『不再监管』某文件/文件夹的同时,还从硬盘上『删除』此文件/文件夹

  • 检出历史版本

    git checkout [ 版本标识 | 标签 ] <文件1>, <文件2>, ...
    
  • 撤消操作

    • 撤消未提交的操作

      添加到了暂存区,还没有提交到版本库中的内容

      git reset --hard
      
    • 单独撤销某个文件的未提交变动

      git checkout -- <文件名>
      
    • 撤销刚才的提交

      git reset --soft HEAD~1   //1表示撤消一步
      

3、.gitignore 文件

Git 中文件的受管状态

状态说明
tracked被追踪tracked 状态意味着 Git 正在关注着这个文件。 你对这个文件的任何改动,都会被 Git 发现。Git 会进一步要求你提交你的改动,或撤销你的改动。
ignored被忽略的ignored 状态意味着 Git 完全不管这个文件,在 Git 看来它就跟不存在一样。
untracked不被追踪的untracked 状态是所有文件的初始状态。 逻辑上,它是 tracked 和 ignored 状态『之前』的一种状态,逻辑上,它是一种临时状态:你既没有要求 Git 监管它,又没有要求 Git 忽略它。 对于这个文件,Git 也是一脸懵逼不知道接下来该不该监测文件的变动,正因为如此,untracked 是一种临时状态,不应该长期存在。
注意
这里有 2 点需要强调的是:
    所有的文件的初始状态都是 untracked 。
    在正常情况下,文件不应该长期处于 untracked 状态,应尽快转变为 tracked 或 ignored 。

.gitignore 文件是git中用设置哪些内容不被管理

简单来说,.gitignore 文件就是一个『黑名单』,在其中列举的文件都不会被 Git 管理,Git 不会关注这些文件的创建、删除、改动,也不会将它们存入到本地版本库,更不会将它们上传到远程仓库。

4、git核心思想

在git中要时刻保持工作区中的内容与版本库中的内容一致。

二、分支操作【重点】

在git中master称为主分支,主分支上是不允许直接改变的

当项目经理把项目上传到远程仓库后,为了保证大家相互之间写代码不冲突。会在仓 库中为每一个程序员创建一个分支(将当前分支的内容复制一份)

  • 创建分支

    git branch 新分支名 [从当前分支的 Commit]
    
  • 切换分支

    git checkout <分支名>
    
  • 删除分支

    git branch -d <被删除分支名>
    
  • 合并分支

    合并分支就是将自己的分支内容合并到主分支中

    • 普通合并

      步骤:
         切换到主分支
         选中子分支中要合并的节点
      
      命令:
         git merge <另一个分支名>
      
    • 快速合并

      “快速合并” 和 “非快速合并” 的最大区别在于:普通合并/非快速合并,会产生一个新的提交节点。快速合并不会产生新节点

       git merge  --ff  <另一个分支名>
      
  • 变基

    如果你要拿到其他分支的代码:其他分支的代码先合并到主分支,你自己的分支基于主分支最新的节点变基

    变基是站在自己的节点上将主分支的代码合进来。变基不会新增节点

    git rebase master
    

三、合并冲突【重点】

如果多个分支对同一个文件进行了操作,合并分支时git会检测文件,如果检测到有多个分支对同一个文件进行了修改就会警告提示。这种问题称为代码冲突.

代码冲突只能由程序员手动解决。合并谁的分支产生的冲突,就由谁负责解决

可以将gitkraken自带的代码比较器改为vscode

  • 确定vscode是否在系统中配了环境变量

    path:  C:\Program Files\VSCode\bin
    
  • 修改.gitconfig

    [diff]
      tool = vscode
    [difftool "vscode"]
      cmd = code --wait --diff $LOCAL $REMOTE
    [merge]
      tool = vscode
    [mergetool "vscode"]
      keepbackup = false
      cmd = code --wait $MERGED
      trustexitcode = true
    

四、GIT工作流

  • 准备工作

    • 项目经理搭建远程仓库并上传项目(主分支设保护)

    • 项目经理将组员添加到仓库中

    • 组员拉取远程仓库到本地(创建自己的分支并上传)

  • 组员日常操作

    • 每天早上一来拉取远程仓库(主分支,自己的分支)

    • 代码开发写功能

    • 自己的功能写完后上传到远程仓库

      • 每天下班前上传
      • 其他人要使用自己的代码
    • 自己的功能上传后告诉项目经理进行代码合并

    • 项目经理合并完成后通知其他组员变基

      • 暂存自己当前任务
      • 更新主分支
      • 将主分支变基为自己的节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值