【GIT-4】进阶仓库管理#
教程定位:进阶
git lfs#
git lfs 是一个 Git 的扩展,用于存储大文件。
安装#
brew install git-lfs
使用#
git lfs install # 初始化
git lfs track "*.psd" # 添加需要追踪的文件
git add .gitattributes # 提交.gitattributes文件
git add file.psd # 提交文件
git commit -m "add psd file" # 提交
git push origin master # 推送
git submodule#
git submodule 是在一个仓库中引入另一个仓库。
添加子模块#
git submodule add
克隆包含子模块的仓库#
git clone --recursive
如果在克隆仓库时没有使用 –recursive 参数,可以使用以下命令初始化子模块
git submodule init
然后更新子模块
git submodule update
更新子模块#
如果子模块有更新,需要更新子模块
git submodule update
gitignore#
.gitignore 文件用于指定忽略的文件。比如python项目,可以忽略 pycache 文件夹。
创建#
touch .gitignore
编辑#
*.pyc
__pycache__
可以使用通配符,比如 *.pyc 表示忽略所有以 .pyc 结尾的文件。 对于文件夹,可以使用 / 表示忽略文件夹下的所有文件。
生效#
git add .gitignore
git commit -m "add gitignore"
git push origin master
如果已经提交了不想提交的文件,可以使用以下命令删除
git rm --cached file
同时提交并推送到两个仓库#
一份代码如何同时提交并推送到两个仓库, 需要明确从哪个仓库拉取代码
查看仓库绑定情况
git remote -v
# origin git@e.coding.net:mrathena/code.study/python.apex.weapon.auto.recognize.and.suppress.git (fetch)
# origin git@e.coding.net:mrathena/code.study/python.apex.weapon.auto.recognize.and.suppress.git (push)
再绑定另外一个远程仓库, 该仓库只推不拉
git remote set-url --add origin git@github.com:mrathena/python.apex.weapon.auto.recognize.and.suppress.git
git remote -v
# origin git@e.coding.net:mrathena/code.study/python.apex.weapon.auto.recognize.and.suppress.git (fetch)
# origin git@e.coding.net:mrathena/code.study/python.apex.weapon.auto.recognize.and.suppress.git (push)
# origin git@github.com:mrathena/python.apex.weapon.auto.recognize.and.suppress.git (push)
这时候执行推送, 大概率只能成功推到第一个仓库, 后绑定的仓库会拒绝, 要求先获取一次
可以执行 git push -f 强制推送一次, 后续 git push 就正常了