git总结
使用 git commit 来提交文件
git commit -am “first commit “
使用git reset 回退版本
git reset 有三个版本 –soft –hard –mixed
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 当前版本和上两个版本间的差异
使用 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的匹配规则
本地仓库与远程仓库关联
添加远程仓库
git remote add <远程仓库别名> <远程仓库地址> 其中 github默认分支名字为 origin(远程仓库别名)
1 |
|
将本地文件推送到远程仓库
1 |
|
其中:
<remote>
是指定远程仓库的名称,通常是origin
,但也可以是其他已配置的远程仓库的名称。<remote>
是指定要推送的本地分支的名称。
拉取远程仓库内容
1 |
|
git branch
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
使用 alias 来代替 git log –oneline –all –graph
1 |
|
分支管理和工作流模型
master/main
代表项目的稳定版本,每个提交到主分支的代码都应该是经过测试和审核的dev
用于日常开发。所有的功能分支、发布分支、修改分支都应该从开发分支派生。feat
用于开发单独的功能或特性。 每个功能分支都应该从开发分支派生,并在开发完成后合并回 devrelaese
用于准备项目发布。发布分支应该从开发分支派生,并在准备好发布版本后合并回主分支和开发分支hotfix
用于修改主分支上的紧急问题。热修复分支应该从主分支派生,并在修复完成后,合并回主分支和开发分支
git总结
http://example.com/2023/10/20/git总结/