一些Git操作
基本操作
基本四部曲
添(Add)
- 命令:
git add <文件名>
或git add .
- 作用:将修改过的文件添加到本地暂存区(Staging Area)。这一步是准备阶段,你可以选择性地添加文件,决定哪些修改应该被包括在即将进行的提交中。
提(Commit)
- 命令:
git commit -m '描述信息'
- 作用:将暂存区中的更改提交到本地仓库。这一步是将你的更改正式记录下来,每次提交都应附带一个清晰的描述信息,说明这次提交的目的或所解决的问题。
拉(Pull)
- 命令:
git pull
- 作用:从远程仓库拉取最新的内容到本地仓库,并自动尝试合并到当前分支。这一步是同步的重要环节,确保你的工作基于最新的项目状态进行。在多人协作中,定期拉取可以避免将来的合并冲突。
推(Push)
- 命令:
git push
- 作用:将本地仓库的更改推送到远程仓库。这一步是共享你的工作成果,让团队成员看到你的贡献。
扩展操作
git lfs
下载一些大文件时, 需要git lfs 的支持,
git 安装 lfs
apt install -y git-lfs
git lfs install
之后再进行 git clone
时就可以获得全部文件了
git filter-branch
一个很现实的事是有时候我会希望更细致的修改提交历史, 去掉某些可能不合规的文件而不仅仅是在新的commit中覆盖掉它, 这时我们需要
git filter-branch --index-filter 'git rm --cached --ignore-unmatch <filename>' HEAD
再比如说, 我希望将某个项目中的某个子文件夹单独保留历史以便移入新项目:
git filter-branch --subdirectory-filter dir_to_keep -- -- all
之后我将它移入new_repo用
git merge <new_repo> --allow-unrelated-histories
将历史合并就好了.
这个命令还有更多复杂的用法, --msg-filter, --parent-filter 等选项, 需要细心学习.