git的常用命令及应用场景

278 阅读4分钟

git常用命令总结

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天 点击查看活动详情
Git是一个基于Linux内核开发的版本控制工具,当你需要做一个大工程的时候,文件的管理无疑是非常庞大的工作,因为你需要不断的修改更新文件内容,同时可能还要保留旧版本保证可以复原,这样就需要备份多个版本的文件。\ 并且在大多数情况下一个工程需要在多数人来共同维护,那么这种情况下不同人之间修改内容的合并也是非常麻烦的,这时使用git就可以很轻松的解决这些问题。

1.配置全局账号信息

git config --global user.name "用户名称"
git config --global user.email "登录邮箱"

这个文件是 Git 的全局配置文件,配置一次即可永久生效。

查看所有的全局配置项git config --list --global

2.初始化本地仓库

cd 文件夹名

git init

3.将远程仓库克隆到本地

  • 将远程仓库克隆到本地git clone 源路径
  • 添加远程源git remote add origin 源路径
git clone https://github.com/react-redux-antd-es6/react.git

4.将文件添加到暂存区及提交到本地仓库,远程源

  • 查看当前仓库的状态,显示变更的文件git status
  • 将index.html添加到【暂存区】git add ./index.html
  • 将全部文件和文件夹添加到【暂存区】git add .
  • 将暂存区中的内容提交到本地仓库git commit -m '提交内容的备注'
  • 将本地仓库中的内容推送到远程的master分支git push -u origin master

5.分支操作

  • 新建分支devgit branch dev
  • 创建并切换到dev分支git switch -c dev
  • 切换到dev分支git switch dev
  • 查看本地所有的分支git branch image.png
  • 查看远程的所有分支git branch -r
  • 查看本地的所有分支及远程的所有分支git branch -a
  • 切换到dev分支git checkout dev image.png
  • 新建test分支并切换到test分支git checkout -b test image.png
  • 删除test分支git branch -D test,这里我们需要注意的是,假设我们在test分支上面,那么我们删除test分支需要切换到别的分支上去,不然会告诉我们删除不了。 image.png
  • 删除本地分支:git branch -D 本地分支名称
  • 恢复本地分支:git checkout -b 恢复的分支名称
  • 删除远程分支:git push origin --delete 远程分支名称
  • 恢复远程分支:直接在恢复的分支上面push到远程即可

6.合并、版本冲突、历史记录、版本回退操作

在我们日常开发中,总是避免不了多人开发一个模块中的某一小块,这时候我们会基于某个分支创建多个分支出来,每个人在一条分支上面开发,等功能完成后,我们就需要合并分支,在合并分支的过程中,总是避免不了冲突。

  1. 我们先创建2个分支feat1和feat2,然后我们切换到feat1分支

image.png

  1. 我们在index.js下面我们输入如下代码
function add(a, b) {
    return a + b
}
console.log(add(2,3))
  • 然后在控制台提交一次代码
git add .  // 将所有文件提交到暂存区
git commit -m "更新了feat1分支的内容" // 将暂存区的文件提交到本地仓库
git push origin -u feat1 // 将本地仓库文件推送至远程源
  1. 然后我们切换到feat2分支也在index.js中输入如下代码
function add(a, b) {
    return a - b
}
console.log(add(2,3))
  • 然后在控制台提交一次代码,同上操作
git add .  // 将所有文件提交到暂存区
git commit -m "更新了feat2分支的内容" // 将暂存区的文件提交到本地仓库
git push origin -u feat2 // 将本地仓库文件推送至远程源
  1. 合并feat2分支到feat1git merge feat2
  • 注意我们合并代码之前需要git pull一下,将远程的代码拉取下来会覆盖原有的本地代码

image.png 6. 在我们合并分支的时候发生了代码冲突,第一个表示默认使用本地的代码;第二个表示使用传入的代码;第三个表示2个都需要;但是需要自己手动更改;第四个是2个分支代码的差异对比。 image.png 7. 查看历史提交记录git log image.png 8. 版本回退(并且还能回得来)git revert 75644 image.png 9. 消灭历史记录的硬回退(回不来了)git reset --hard e8ffdff image.png

7.git如何放弃本地文件修改

  1. 未使用git add缓存代码
  • 放弃某一个本地文件命令git checkout 文件名
  • 放弃所有文件修改命令git checkout .
  1. 已使用git add缓存代码,未使用git commit
  • 放弃某一个本地文件命令回到git add .之前git reset HEAD 文件名
  • 放弃所有文件修改命令回到git add .之前git reset HEAD
  1. 已经用 git commit 提交了代码
  • 回退到上一次commit的状态git reset --hard HEAD^
  • 或者回退到任意版本详看6.合并、版本冲突、历史记录、版本回退操作第7、8