git总结

使用 git commit 来提交文件

git commit -am “first commit “

使用git reset 回退版本

git reset 有三个版本 –soft –hard –mixed

image-20231020090358533

git ls-files 查看暂存区中的内容

假如有误操作,可以使用一下命令,进行回溯

git reflog 查看历史版本号

git reset –hard 版本号

使用 git diff 查看差异

  • git diff 默认查看working Directory 和 Stage Area 的差异
  • git diff –cached/staged 查看 Stage Area 和 Local Area的差异
  • git diff HEAD查看 working Directory 和 Local Area的差异
  • git diff 【版本号1】 【版本号2】 查看两个版本之间的差异
    • HEAD 表示当前版本
    • HEAD~ 表示上一个版本
    • HEAD~2 表示上一个版本
    • git diff HEAD~2 HEAD file.txt 查看 file.txt 当前版本和上两个版本间的差异

image-20231020080808149

使用 git rm 来删除文件

git rm fileName 取代 rm fileName + git add fileName

git rm fileName 会删除 本地文件 和 版本库文件

git rm –cached 只会删除 版本库文件

使用.gitignore忽视文件

.gitignore 有一个奏效前提,文件不能是已经被提交到版本库中的文件

  • 将需要忽视的文件加入 .gitignore 中
  • 可以使用 通配符 * 来适配所有文件
  • 可以将需要忽略的文件夹放入 .gitignore 中,文件夹以/ 结尾 eg: temp/,这将忽视temp文件夹下的所有文件。 注意:需要忽视的文件夹不能为空,如果为空,gitignore不会生效

gitignore的匹配规则

image-20231020103715140

本地仓库与远程仓库关联

image-20231020215250344

添加远程仓库

git remote add <远程仓库别名> <远程仓库地址> 其中 github默认分支名字为 origin(远程仓库别名)

1
git remote add origin git@github.com:Forrest-Tao/gitTest.git

将本地文件推送到远程仓库

1
2
git push -u <remote> <remote>
git push origin main

其中:

  • <remote> 是指定远程仓库的名称,通常是 origin,但也可以是其他已配置的远程仓库的名称。
  • <remote> 是指定要推送的本地分支的名称。

拉取远程仓库内容

1
git pull <远程仓库名> <远程分支名> :<本地分支名>

git branch

image-20231020224632232

  • git branch 查看分支,其中用 * 表示的为当前分支

  • git branch brachName 新建分支

  • git checkout branchName 用来切换到相应的分支

    • 由于 git checkout 有双重含义(恢复文件到相应的状态 | 切换分支,在git的2.23中我们可以使用语义更加明确的 switch)
    • 推荐使用 git switch branchName
  • 如果一个分支不再需要,我们可以使用 git brach -d 来删除分支

使用 git merge 将不同的分支内容进行合并

可以使用 git log --graph --oneline --decorate --all 来查看合并分支详情

解决合并冲突

  • 当两个分支 没有冲突时,git merge branchName 会非常丝滑的完成,将branchName 中的文件和当前分支的文件进行合并;并且会自动提交
  • 当两个分支发生冲突时,git merger branchName 会提示我们自动合并发生错误,需要我们手动合并;此时会将branchName中的数据写入当前发生冲突的文件的那个位置,并且显示的提示什么什么是当前分支的内容,而什么什么是branchName的内容,我们需要手动将冲突解决;并由我们手动 git add 和 git commit

Rebase

image-20231021101119181

image-20231021091150448

image-20231021091243478

image-20231021103001369

使用 alias 来代替 git log –oneline –all –graph

1
alias graph=" git log --oneline --all --graph"

分支管理和工作流模型

image-20231021104124209

  • master/main 代表项目的稳定版本,每个提交到主分支的代码都应该是经过测试和审核的
  • dev 用于日常开发。所有的功能分支、发布分支、修改分支都应该从开发分支派生。
  • feat 用于开发单独的功能或特性。 每个功能分支都应该从开发分支派生,并在开发完成后合并回 dev
  • relaese 用于准备项目发布。发布分支应该从开发分支派生,并在准备好发布版本后合并回主分支和开发分支
  • hotfix 用于修改主分支上的紧急问题。热修复分支应该从主分支派生,并在修复完成后,合并回主分支和开发分支

git总结
http://example.com/2023/10/20/git总结/
作者
Forrest
发布于
2023年10月20日
许可协议