git相关

本文详细介绍 Git 的核心概念及使用方法,包括版本库、工作区、暂存区等文件分类,基本操作如初始化、添加、提交等,检出与重置命令的应用,以及远程仓库的管理与分支操作。

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

git

git 概念


  • Repository 仓库、版本库
    git 初始化后,会在当前目录生成一个.git目录, 这就是版本库

  • Workspece 工作区间、工作区
    .git所在的目录就是工作区,一般是项目的根目录

  • index索引
    介于工作区和版本库之间,暂存修改。

  • remote 远程版本库
    网络上的另一个版本库, 可以和本地库交互

git的文件分类


  • 追踪的Tracked ,已经加入版本库的文件
  • 未追踪的Untracked,未加入到版本库的文件
  • 忽略的Ignored,git不在关注的文件,例如一些临时文件,位于.gitignore文件中,目录以/结尾/,行起始的!是取反。

基本使用


  • git init 初始化一个版本库,在当前目录生成一个.git目录
  • git add . 向暂存区添加文件,新文件未被追踪时,只能够通过add向暂存区添加。
  • git status 查看git状态,列出当前git状态,比较HEAD和暂存区还有当前工作区间之间的区别。
  • commit 提交更改到版本库,-m填写本次日志消息,必须写。
    git的提交分两个步骤:
    暂存变更:add作用是把新文件或者新的改动添加到暂存区中。
    提交表更:commit提交的是暂存区的改动,而不是物理文件当前的改动,提交到当前分支,默认是master分支。
    当改动的文件已经被追踪时,可以使用git commit FILE命令直接执行
    git commit -a会把所有追踪的文件的改动自动暂存,然后commit
    --amend 会将当前暂存区的内容添加到最后一次的commit上,作为增补。

  • git diff 比较各种差异

    • git diff 查看被追踪文件未暂存的修改,比较暂存区和工作区。
    • git diff --cached 查看被追踪文件暂存的修改,比较暂存区和上一次commit的差异。
    • git diff HEAD 查看被追踪文件,比较工作区和上一次commit的差异,HEAD指代最后一个的commit。
  • HEAD 指代最后一的commit
    HEAD^ ,指代上一次提交
    HEAD^^, 指代上上一次提交。
    HEAD~n, 上n次提交。

检出和重置


  • check

    • git checkout 列出暂存区可以被检出的文件。
    • git checkout FILE 从暂存区检出文件到工作区,就是覆盖文件区文件,但是不清除stage.
    • git checkout commit file 检出某个commit的指定文件到暂存区和工作区。
    • git checkout . 检出暂存区的所有文件到工作区。
  • reset

    • gut reset 列出将被reset的文件。
    • git reset file 重置文件的暂存区,和上一次commit一致,工作区不影响。
    • git reset --hard 重置暂存区和工作区,与上一次commit保持一致。
    • git reflog 显示commit的信息,只要HEAD发生变化,就可以在这里看到。
    • git reset commit 重置当前分支的HEAD为指定 commit, 同时重置暂存区,但工作区不变。
    • git reset --hard [commit] 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致。
    • git reset --keep [commit] 重置当前HEAD为指定commit,但保持暂存区和工作区不变。

移动和删除


  • git mv src dest 改名,直接把改名的改动放入暂存区。
  • git rm file 会同时在版本库和工作目录中删除文件,真删除。
  • git rm --cached file 将文件从暂存转为未暂存,从版本库删除,但不删除工作目录的该文件,即文件恢复成不追踪的状态。
    以上都算是改动,必须commit才算真的改动了。

远程仓库


  • ssh-keygen -t tsa -C "yourEmail@XXX.com" 生成ssh密钥,位置默认在用户home目录下的.ssh 文件夹。

  • git config --global user.name "YOURNAME"

  • git config --global user.email "YOUREMAIL"上面这两段代码来设置git默认的姓名和email,都体现在gitcommit信息上。

  • git clone REPO 克隆远程仓库。

  • git remote add origin REOP 关联远程版本库,远程版本库名origin,这是个习惯用法,将建立origin和后面的url的映射,这些信息都保存在.git/config文件的新字段[remote :”origin”]中。

  • git push -u origin master 将版本库推动到远端,-u 第一次远程推送的时候加上,以后就可以不用-u的参数,可以git push origin master 甚至可以直接git push就可以了。

分支相关


  • git checkout -b dev 创建分支并切换到dev分支

  • git branch NAME 创建分支

  • git branch 列出所有分支

  • git checkout master 切换到master分支

  • git merge dev 将dev分支的工作合并到当前分支上

  • git branch -d dev 删除dev分支

  • git log --graph 查看分支合并图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值