Git使用小技巧
Git是一个分布式版本控制系统。 关于Git的可视化客户端,插件,教程等等可以看Gitee的Git 大全。 这里面的文章已经非常丰富了就不再班门弄斧了。
Git中的空文件夹
Git是针对文件来进行版本管理的,默认不跟踪文件夹和空目录。在管理文件的过程中顺带保留了文件夹的相关信息。
保留空文件夹或空目录
如果想要推送空文件夹或者空目录,那就必须在里面放一个文件。 但如果随便放一个文件的话还是稍微有点不太规范。 所以我们可以在空文件夹下创建.gitkeep
的空文件并将其添加到版本管理里面。这样就可以保留空文件夹或空目录了。
详细用法可以参考使用 .gitkeep 提交并推送空的 Git 文件夹或目录
简单的命令如下:
cd empty-directory # 进入空文件夹
touch .gitkeep # 创建空的 .gitkeep 文件
git add . # 添加当前文件夹下所有的文件到版本管理,实际上就添加 .gitkeep 文件
git commit -m "Commit empty folder in Git with gitkeep" # 提交
git push # 推送
删除空文件夹
由于git不同步文件夹,那么其他人在删除完文件夹下的所有文件后进行提交后我们的本地就会留下一个个空文件夹。
git rm -rf dir # 删除 dir 这个非空目录, 这时候空目录是 untracked 状态
git clean -fd # 删除掉 untracked 状态的空目录
项目拉取太大
由于git是分布式版本控制系统,所以使用 git clone
命令进行操作时,实际上时把整个版本库都下载到本地了,包含了各种历史信息。其他如果不是特别必要的话可以使用--depth
指定部分下载。
# 克隆最近一次的提交
git clone --depth=1 git@github.com:EpicGames/UnrealEngine.git
# 拉取后要是想要讲其他分支也可怜到本地可以进行如下操作
git remote set-branches origin 'remote_branch_name'
git fetch --depth 1 origin remote_branch_name
git checkout remote_branch_name
Git拉取失败分析
1. invalid path
在Mac或者linux上创建了文件夹,但是有些路径是和windows不兼容的。 比如一些特殊符号\``/``?
会导致这种情况的出现。
解决方案:在其他设备或者在线仓库中对文件进行修改即可。