Git中的一些基本概念
- 版本控制:Git 可以记录代码的历史修改,并允许你回到以前的版本。每次的提交都会生成一个“快照”。
- 分支(Branch):Git 允许你创建多个分支,每个分支是项目的一个独立开发线,你可以在不同的分支上进行不同的开发。
- 工作区(Working Directory):这是你当前工作的项目文件夹。
- 暂存区(Staging Area):暂存区是你准备提交的更改的地方。
- 本地库(Local Repository):你在本地的 Git 仓库,存储了你提交的所有历史记录。
- 远程库(Remote Repository):远程 Git 仓库,通常托管在 GitHub、GitLab 等服务平台上,团队可以通过远程库进行协作。
Git的工作流程
- 修改文件:在工作目录中编辑代码。
- 添加到暂存区:将修改添加到暂存区,告诉 Git 准备好这些更改。
- 提交更改:将暂存区的更改提交到本地 Git 仓库。
- 推送到远程仓库:把本地的提交推送到远程 Git 仓库,其他人可以看到你的更改。
Git中的常用命令
查看Git版本
# 查看git版本
git --version
设置用户名和邮箱
# 设置用户名和邮箱
# 每条Git提交记录都包含用户名和邮箱,使用git前需要进行配置
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
克隆一个远程仓库
- 用来从远程仓库获取整个项目的一次性操作,通常是在你第一次使用该项目的时候。克隆操作会从远程仓库复制所有版本历史、所有分支,并创建一个本地的 Git 仓库
# 克隆一个仓库下的所有分支
git clone <远程仓库的url地址>
# 例如:
git clone https://github.com/krabsng/MyLearnningThings.git
# 克隆一个仓库下的某一个分支
git clone -b <分支名> --single-branch <仓库地址>
# 例如:
git clone -b master --single-branch https://github.com/krabsng/MyLearningThings.git
拉取仓库
- 来同步远程仓库中的最新更改到你当前已经存在的本地仓库。它实际上是两步操作的结合:fetch(从远程获取更改)和 merge(将更改合并到当前分支)
git pull <远程仓库名> <分支名>
# 指定远程分支拉取
git checkout -b <本地分支名> <远程仓库名>/<远程分支名>
# 当远程分支和本地分支存在分歧时,可以使用以下策略处理分歧
# merge(合并):将远程分支的更改与本地分支的更改合并
git pull --no-rebase <远程仓库名> <分支名>
# rebase(变基):将本地的提交变基到远程分支的提交之上
git pull --rebase <远程仓库名> <分支名>\
# fast-forward only(仅快进合并): 远程分支完全领先本地分支时才允许合并
git pull --ff-only krabs-github underwater
获取远程分支的更新
# 获取远程分支更新
git fetch <远程仓库名>
强制使用远程分支更新的内容替换本地分支内容
# 本地分支内容完全被远程分支内容覆盖
git reset --hard <远程仓库名称>/<分支名称>
初始化一个Git仓库
# 初始化一个新的Git仓库
# 进入你的工程文件夹下,执行下面的命令即可
git init
向git仓库添加文件
# 添加单个文件
git add <文件名称>
# 添加所有修改的文件
git add .
提交更改
# 提交暂存区的内容到本地仓库,并附带提交说明
git commit -m "提交说明"
推送更改到远程仓库
git push <远程仓库名> <分支名>
# 强制推送分支
git push --force <远程仓库名> <分支名>
创建一个分支
# 创建本地分支并切换至该分支
git switch -c <分支名>
# 老版本git使用下面命令
git checkout -b underwater
切换分支
git switch <分支名>
# 老版本git使用下面命令
git checkout <分支名>
查看已经建立的分支
# 查看本地分支
git branch
# 查看远程分支
git branch -r
# 查看已经合并的分支
git branch --merged
# 查看未合并的分支
git branch --no-merged
删除分支
# 删除本地分支,-d 参数用于删除本地分支,它会检查该分支是否已经合并。如果未合并,Git 会发出警告并阻止删除。
git branch -d <分支名称>
# 强制删除本地分支,不管该分支是否已经合并
git branch -D <分支名称>
# 删除远程分支,远程分支的删除通过 git push 命令来完成
git push <远程仓库的名称> --delete <分支名>
将修改后的分支添加至远程仓库
# 添加修改后的文件
git add .
# 提交修改
git commit -m "一些提示信息"
# 推送至远程仓库,若远程仓库没有该分支,则自动新建该分支
git push -u <远程仓库的名称> <分支名称>
合并分支
# 合并分支前,需要切换到你想合并到的分支
git switch <目标分支>
# 合并另一个分支到当前分支
git merge <要合并的分支>
添加远程仓库
- 添加远程仓库前需要先初始化一个本地仓库
# 初始化本地仓库
git init
# 添加远程仓库
git remote add <远程仓库名> <远程仓库地址>
# 例如
git remote add origin https://github.com/user/repository.git
查看已经添加的远程仓库
git remote -v
移除已经添加的远程仓库
git remote remove <远程仓库名>
创建.gitignore文件,添加忽略规则
# 忽略特定文件
secret_config.yaml
# 忽略指定目录
/node_modules/
/dist/
# 忽略特定类型的文件
*.log
*.tmp
# 忽略所有子文件目录中的某个文件
**/temp.txt