Git 学习笔记

Git 学习笔记

一、Git 简介

Git 是一个开源的分布式版本控制系统,用于有效、高速地处理从小到大的项目版本管理。它允许团队成员在本地工作,然后将更改合并到中央仓库中,极大地提高了开发效率和协作便利性。

Git 的安装很容易,按照安装提示即可安装,这里就不一一介绍了。

Git 安装地址:Git - Downloads (git-scm.com)

二、基本概念

  1. 仓库(Repository)

    存储项目所有文件和文件夹的完整历史记录,包括每个版本的变更信息。每个项目都有一个仓库,通常在项目根目录下有一个隐藏的 .git 文件夹,里面存放着仓库的元数据。

  2. 工作区(Working Directory)

    即项目文件夹,是我们进行代码编辑、添加、删除等操作的地方。工作区中的文件可以是未修改的、已修改未暂存的或已暂存的状态。

  3. 暂存区(Staging Area)

    也称为索引(Index),是一个文件,保存了下次将提交到仓库中的文件列表信息。通过 git add 命令可以将工作区的文件添加到暂存区,暂存区的文件状态会被记录下来,等待提交。

  4. 提交(Commit)

    将暂存区的文件提交到本地仓库的操作。每次提交都会生成一个唯一的提交 ID,记录了提交时的文件状态、提交信息(如作者、日期、描述等)。通过 git commit 命令完成提交,提交后暂存区会被清空。

三、基本操作

  1. 配置 Git

    • 全局配置用户名和邮箱:

    git config --global user.name "Your Name"
    
    git config --global user.email "your_email@example.com"
    

    • 查看配置信息:

    	git config --list
    
  2. 创建和克隆仓库

    • 初始化本地仓库:

	cd project_folder
	git init

​ • 克隆远程仓库:

	git clone https://github.com/username/repository.git
  1. 添加和提交文件

    • 添加文件到暂存区:

	git add filename
 或添加所有修改过的文件:
	git add .

​ • 提交暂存区的文件到本地仓库:

	git commit -m "Commit message"
  1. 查看状态和历史

    • 查看工作区和暂存区的状态:

	git status

​ • 查看提交历史:

 	git log
可以通过   `git log --oneline`   查看简洁的提交历史,每条提交只显示一行信息。
  1. 分支管理

​ • 查看当前分支:

	git branch
 • 创建新分支:
	git branch branch_name
 • 切换分支:
	git checkout branch_name
 或使用   `git switch branch_name`  (Git 2.23 之后的新命令)

 • 合并分支:
	git checkout target_branch
	git merge source_branch

​ 将 source_branch 分支的更改合并到 target_branch 分支中

  1. 远程仓库操作

​ • 查看远程仓库信息:

	git remote -v
 • 添加远程仓库:
	git remote add origin https://github.com/username/repository.git
 • 推送本地分支到远程仓库:
	git push -u origin branch_name
 • 从远程仓库拉取更新:
	git pull origin branch_name

四、常用技巧

  1. 撤销修改

    • 撤销工作区的修改(未暂存的文件):

    git checkout -- filename
    

    • 撤销暂存区的修改:

    git reset HEAD filename
    
  2. 查看文件差异

    • 查看工作区和暂存区的差异:

	git diff
 • 查看暂存区和本地仓库的差异:
    git diff --cached
  1. 标签管理

​ • 创建标签:

	git tag tag_name
 • 查看标签:
	git tag
 • 推送标签到远程仓库:
	git push origin tag_name
  1. 忽略文件

创建 .gitignore 文件,在其中列出不需要被 Git 跟踪的文件或文件夹模式,例如:

#忽略所有 `.log` 文件
*.log
# 忽略 node_modules 目录
node_modules/

五、常见问题及解决方法

  1. 冲突解决

    当合并分支时出现冲突,Git 会在冲突文件中标记出冲突部分,需要手动编辑文件解决冲突,然后添加文件到暂存区并提交。

  2. 忘记添加文件到暂存区就提交了

    可以通过 git commit --amend 命令修改最后一次提交,添加遗漏的文件后再提交。

  3. 无法推送分支到远程仓库

    如果远程仓库有更新,需要先拉取更新再推送,或者使用 git push -f 强制推送(需谨慎使用,可能会覆盖远程仓库中的更改)。

六、进阶操作

  1. 交互式暂存

    通过 git add -i 命令进入交互式暂存模式,可以更精细地选择要暂存的文件或文件块。

  2. 变基(Rebase)

    将本地分支的更改重新应用到另一个分支上,使提交历史更加整洁。使用 git rebase target_branch 命令,但需注意变基可能会导致历史记录改写,尽量在未推送的本地分支上使用。

  3. 樱桃采摘(Cherry-pick)

    将特定的提交从一个分支应用到另一个分支。使用 git cherry-pick commit_id 命令,适用于需要将个别重要提交迁移到其他分支的场景。

七、资源推荐

• 官方文档:https://git-scm.com/doc(详细全面,是学习 Git 的权威资料)

• Pro Git 书籍:https://git-scm.com/book/zh-tw/v2(内容丰富,适合系统学习)

• GitHub 学习资源:https://lab.github.com/(通过实践项目学习 Git 和 GitHub 的使用)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值