Git版本控制学习笔记|常用命令一网打尽
为什么要学Git
刚开始写代码的时候,我的项目文件夹是这样的:
项目_最终版
项目_最终版2
项目_真最终版
项目_真最终版_改
项目_打死也不改了
每次改代码都要复制一份,特别混乱。后来开始用Git,才发现版本控制真的太重要了。
Git是一个分布式版本控制系统,可以记录每次修改,随时回到之前的版本,还能多人协作。
安装和配置
安装很简单,去官网下载安装包,一路下一步就行。
安装完成后要配置用户名和邮箱,这个会记录在每次提交里:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
用git config --list可以查看所有配置。
基础操作
一、初始化仓库
进到项目文件夹,运行git init,就会生成一个隐藏的.git文件夹,Git就开始管理这个项目了。
二、添加文件到暂存区
新建一个文件后,要用git add告诉Git要追踪这个文件。
git add readme.md 添加单个文件
git add . 添加所有文件
三、提交到本地仓库
git add只是把文件放到暂存区,还要用git commit才能真正提交。
git commit -m "第一次提交"
-m后面是本次提交的说明,建议写清楚改了什么东西。
四、查看状态
git status 查看哪些文件被修改了
git log 查看提交历史
git log --oneline 一行显示一条提交
分支操作
分支是Git最强大的功能之一。可以理解为主干上分出旁支,在旁支上开发新功能,不影响主干的稳定。
git branch 查看所有分支,当前分支前面有个星号
git branch dev 创建dev分支
git checkout dev 切换到dev分支
git checkout -b dev 创建并切换到dev分支
开发完功能后,要把分支合并回主干:
git checkout main 先切回主干
git merge dev 把dev的代码合并过来
如果不需要这个分支了,可以删除:
git branch -d dev
远程仓库
本地仓库只能自己用,要多人协作需要把代码推到远程仓库。最常用的是GitHub、Gitee。
先关联远程仓库:
git remote add origin https://github.com/用户名/仓库名.git
推送代码:
git push -u origin main
第一次推送用-u,会把本地main分支和远程main分支关联起来,以后直接git push就行。
拉取远程更新:
git pull
这个命令会从远程拉取最新代码并合并到本地。
撤销和回退
改错了代码怎么办?不要慌,Git可以撤销。
git checkout -- 文件名 撤销工作区的修改
git reset HEAD 文件名 撤销暂存区的修改
如果要回退到之前的版本:
git reset --hard 提交ID
提交ID可以用git log查看,比如commit后面那一串字符。
git reflog 可以查看所有操作记录,即使回退错了也能找回来。
常见场景
场景一:提交完了发现漏了一个文件
git add 漏掉的文件
git commit --amend --no-edit
这个命令会把新文件合并到上一次提交,不修改提交信息。
场景二:合并时出现冲突
两个人改了同一个文件的同一行,Git不知道该用谁的,就会报冲突。
打开冲突文件,会看到这样的标记:
<<<<<<< HEAD
你的代码
=======
别人的代码
dev
手动改成想要的样子,删掉那些标记,然后git add和git commit。
场景三:暂时不想提交但需要切换分支
git stash 暂存当前修改
git stash pop 恢复暂存的修改
常用命令速查表
| 命令 | 说明 |
|---|---|
| git init | 初始化仓库 |
| git clone 地址 | 克隆远程仓库 |
| git add . | 添加所有文件 |
| git commit -m "说明" | 提交 |
| git push | 推送到远程 |
| git pull | 拉取远程更新 |
| git branch | 查看分支 |
| git checkout 分支名 | 切换分支 |
| git merge 分支名 | 合并分支 |
| git log | 查看提交历史 |
| git status | 查看状态 |
总结
Git的命令看起来很多,但日常用的就那么几个。多用几次就熟练了。
建议在GitHub上开一个仓库,把学习笔记放上去,既能练习Git又能备份,一举两得。