Git 笔记

本文详细介绍了Git的工作原理,包括三棵树的概念,以及如何获取/创建项目,如`init`、`clone`和`submodule`。重点阐述了Git的基本配置,如`config`和忽略文件的方法。此外,文章还涵盖了Git的快照操作如`add`、`commit`和`status`,分支与合并管理,如`branch`、`merge`和`stash`,以及分享更新项目时的`remote`、`fetch`、`pull`和`push`等操作。最后,讲解了如何进行代码审查和比较,以及打补丁、debug和管理Git历史记录的技巧。
摘要由CSDN通过智能技术生成

Git

工作原理

git 维护三棵树:

  • working directory:工作目录
  • stage(index):缓存
  • history:commit 历史

可以参考这个 图解 Git 命令

获取/创建项目

init

git init
git init <directory>
git init --bare <directory>

初始化一个裸的(没有工作目录的) Git 仓库,中央仓库应该总是用 --bare 标记创建,因为向非裸仓库推送分支有可能会覆盖已有的代码变动。将 bare 看作是将仓库标记为储存设施而不是开发环境,中央仓库是裸仓库,开发者的本地仓库是非裸仓库。

clone

# 将位于 <repo> 的仓库克隆到本地机器
git clone <repo>

# 将位于 <repo> 的仓库克隆到本地机器上的 <directory> 目录
git clone <repo> <directory>
LF CRLF

clone 下来的东西报 lf crlf 的错误,是由于 git clone 的时候自动进行了转换,可以如下设置关闭

git config --global core.autocrlf false

submodule

可以通过 git submodule 配置子模块,git 会在父级目录中用 .gitmodules 文件记录

配置

config

常见配置

git config user.name <name>
git config --global user.name <name>
git config --global user.email <email>

# 为 git 命令创建一个快捷方式(别名)
git config --global alias.<alias-name> <git-command>

# 定义当前机器所有用户使用命令时用到的文本编辑器
git config --system core.editor <editor>

# 用文本编辑器打开全局配置文件,手动编辑
git config --global --edit

git 的配置项存储位置:

  • /.git/config – 特定仓库的设置。
  • ~/.gitconfig – 特定用户的设置。这也是 --global 标记的设置项存放的位置。
  • $(prefix)/etc/gitconfig – 系统层面的设置。
忽略特定文件
git update-index --assume-unchanged PATH

# 如果想撤销这个操作
git update-index --no-assume-unchanged PATH

基本快照操作

add

将工作目录中的变化添加到缓冲区,缓存更改

git add <file>
git add <directory>

# 交互式的缓存
git add -p

# 可以控制那些行被加进去
git add --edit

commit

将缓存的快照提交到项目历史

# 运行文本编辑器,等待输入提交信息
git commit

# 将 <message> 作为提交信息
git commit -m "<message>"

# 自动添加缓冲和提交,除了 new files
git commit -a

# 合并 index 和上一次 commit 提交,且不修改 commit message
# amend 会修改 commit 的 hash 值,无论有没有实际文件变化/message 变化
git commit --amend --no-edit

# 强制设定 commit 日期
git commit --date=<date>

status

git status

文件状态:

  • modified, to be commited:已缓存
  • not staged for commit:未缓存
  • untracked:未追踪

rm

# = rm 且默认(-f&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值