Git 笔记 - 基础操作之配置、提交、合并、撤销、回滚...

01 Git基础概念

1.1 三个区域

使用Git管理的项目,拥有三个区域:

  • 工作区:处理工作的区域。
  • 暂存区:已完成的工作的临时存放区域,等待被提交。
  • Git仓库:最终的存放区域。

1.2 三种状态

  • 已修改 modified:表示修改了文件,但还没将修改的结果放到暂存区。
  • 已暂存 staged:表示对已修改文件的当前版本做了标记,使之包含在下次提交的列表中。
  • 已提交 committed:表示文件已经安全地保存在本地的Git仓库中。

1.3 基本的Git工作流程

  1. 在工作区中修改文件
  2. 将你想要下次提交的更改进行暂存
  3. 提交更新,找到暂存区的文件,将其永久性存储到Git仓库

02 安装配置Git

2.1 安装

在Windows中下载并安装Git,官网下载链接

2.2 配置用户

安装完Git之后,要做的第一件事就是设置自己的用户名和邮件地址。因为通过Git对项目进行版本管理的时候,Git需要使用这些基本信息,来记录是谁对项目进行了操作:

# 配置用户信息
git config --global user.name '你的名字' 
git config --global user.email '你绑定的邮箱'

注意:
(1)如果使用了--global选项,那么该命令只需要运行一次,即可永久生效。
(2)通过上述命令配置的信息会写入到C:/Users/用户名文件夹/.gitconfig文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。所以可以使用记事本打开此文件,从而查看自己曾经对 Git 做了哪些全局性的配置。

除了使用记事本查看全局的配置信息之外,还可以运行如下的终端命令,快速查看Git的全局配置信息:

# 查看所有的全局配置项
git config --list --global
# 查看指定的全局配置项
git config user.name
git config user.email

可以使用 git help <verb> 命令,无需联网即可在浏览器中打开帮助手册,例如:

# 要想打开git config命令的帮助手册
git help config

如果不想查看完整的手册,那么可以用 -h 选项获得更简明的“help”输出:

# 想要获取git config 命令的快速参考
git config -h

2.3 配置SSH

官方文档点这里:Git-生成-SSH-公钥

# 生成 ssh 公钥 (如果不设置密码,三个连续回车)
$ ssh-keygen -t rsa -C "邮箱地址"
# 之后会得到了两个文件:id_rsa 和 id_rsa.pub
# 将 id_rsa.pub 里的内容 复制到 SSH Keys

# 测试 ssh 是否生效
$ ssh -T git@[代码库地址]

03 Git常用的基本命令

# 初始化工程
git init
# 查看目前的状态(untracked未跟踪 staged暂存 modified已修改 unmodified未修改
git status
# 将工作区的所有代码添加到暂存区(.代表all)
git add .
# 将工作区的指定文件添加到暂存区(添加多个文件,以空格隔开)
git add 文件名
# 提交文件到仓库,-m "提交内容的说明")
git commit -m "提交内容的说明"
# 查看版本库中有哪些版本
git log
# 查看差异化不同
git diff
# 创建 并切换 到 新创建的分支
git checkout -b 分支名字
# 查看所有分支
git branch
# 删除分支
git branch -d 分支名字
# 推送至远程仓库(括号中的内容可省略)
git push origin 本地分支名字(:远程分支名字)

04 Git分支与合并操作

  • git branch :查看所有分支;
  • git branch -v :查看分支详情;
  • git checkout 分支名 :切换到指定的分支
  • git checkout -b 分支名 :创建并切换到新创建的分支
  • git branch -m 旧分支名 新分支名 : 重命名指定分支名
  • git branch -d 分支名 :删除指定的分支(该分支没有新的提交记录)
  • git branch -D 分支名 :强制删除指定的分支
  • git branch 分支名 commitId :若要恢复有过提交记录的分支,需要用git reflog查找该分支指向的commitId,再根据commitId创建新的分支
  • git merge 分支名 :将指定的分支合并到当前分支(若遇到合并冲突,待解决冲突后使用git add表示冲突已解决,再用git commit进行提交)
  • git stash :将当前工作暂存
  • git stash list :列出所有的暂存状态
  • git stash apply :从暂存区之中进行恢复
  • git stash drop :从暂存区之中删除
  • git stash pop :从暂存区中恢复且将stash内容删除

注意:删除某分支前需要先切换到其他分支才能对其进行删除操作!

05 Git撤销与回滚操作

开发过程中会遇到提交代码后需要撤回的行为,解决方案如下:

5.1 本地仓库 - 撤销

对 未执行 git push 前的所有操作 进行撤销:

  • 文件被修改,但还未执行git add操作
# 撤销 指定 的文件
git checkout 文件名
# 撤销 全部 文件
git checkout .
  • 执行了git add操作,还没执行git commit,即 文件已经添加到暂存区
# 取消 指定文件 的暂存
# 方法 1
git reset HEAD 文件名
# 方法 2
git rm –-cached 文件名
  • 修改的文件已经执行了git addgit commit操作后
# 回退 到 上一个版本
git reset HEAD~1 
# 回退 到 指定的某个版本
git reset 版本号

5.2 远程仓库 - 回滚

已经执行了git push操作,即已推送到远程仓中,对其进行回滚(回滚有风险,请提前做好备份,谨慎操作,回滚之后):

  • 回滚 指定文件 到 指定版本
# 查看指定文件的历史版本 和 commitID
$ git log 文件名
# 回滚到指定 commitID
$ git checkout commitID 文件名
# 推送至远程仓库(强制)
git push -u origin 分支名 -f
  • 回滚 到 上一个版本
# 方法 1 使用reset(将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录)
git reset --hard HEAD^
# 方法 2 使用revert (放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在)
git revert HEAD
# 推送至远程仓库(强制)
git push -u origin 分支名 -f
  • 回滚 到 某次提交
# 找到要回滚的 commitID
git log
# 按照 指定的commitID 进行回滚
# 方法 1
git revert commitID
# 方法 2 
git reset --hard commitID
# 推送至远程仓库(强制)
git push -u origin 分支名 -f
  • 回滚 到 前几次提交之前
# 回退到 前num次 提交之前
git reset --hard HEAD~num
# eg.回滚到前5次提交之前
git reset --hard HEAD~5
# 推送至远程仓库(强制)
git push -u origin 分支名 -f
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值