public:it:git

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
public:it:git [2021/12/10 14:44] – [Tips] oakfirepublic:it:git [2024/05/09 14:34] (当前版本) – [Tips] oakfire
行 38: 行 38:
   * 简单概括:**父项目只记录子模块的commit id**,任何和“子模块”常识违背的额外操作,想想这个就理解了<del>但不能接受</del>   * 简单概括:**父项目只记录子模块的commit id**,任何和“子模块”常识违背的额外操作,想想这个就理解了<del>但不能接受</del>
   * 新增Submodule:<code bash>   * 新增Submodule:<code bash>
-git submodule add [repository 位置] [欲放置的位置# 增加一個新的 submodule +git submodule add <repository 位置> <欲放置的位置# 增加一個新的 submodule 
-git add .gitmodules [放置的位置]+git add .gitmodules <放置的位置>
 git commit -m "Add submodule into version control" # 提交修改 git commit -m "Add submodule into version control" # 提交修改
 git submodule init # 初始化.git/config git submodule init # 初始化.git/config
行 69: 行 69:
   * 移除Submodule:<code bash>   * 移除Submodule:<code bash>
 # 先砍掉目录 # 先砍掉目录
-git rm --cached [欲移除的目錄] +git rm --cached <欲移除的目录> 
-rm -rf [欲移除的目錄]+rm -rf <欲移除的目录>
 # 修改 .gitmodules,将相关内容移除 # 修改 .gitmodules,将相关内容移除
 vim .gitmodules vim .gitmodules
行 124: 行 124:
   * 合并特定的单个commit,可使用指令 ''git cherry-pick''   * 合并特定的单个commit,可使用指令 ''git cherry-pick''
   * 凭证存储: [[https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%87%AD%E8%AF%81%E5%AD%98%E5%82%A8|credential.helper]],    * 凭证存储: [[https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%87%AD%E8%AF%81%E5%AD%98%E5%82%A8|credential.helper]], 
-    * :!:如果设为store模式,将在本地明文存储用户密码+    * 如果设为store模式,将在本地明文存储用户密码,节省下次输入:<code bash>git config credential.helper store</code> :!:这样会<wrap hi>明文</wrap>保存密码到 '' ~/.git-credentials''
   * 打印更多日志:<code bash>GIT_TRACE=2 GIT_CURL_VERBOSE=1 git clone <repo></code> 详见[[https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables#Debugging|git 环境变量]]   * 打印更多日志:<code bash>GIT_TRACE=2 GIT_CURL_VERBOSE=1 git clone <repo></code> 详见[[https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables#Debugging|git 环境变量]]
   * 提交空commit: <code bash>git commit --allow-empty -m "Empty"</code>   * 提交空commit: <code bash>git commit --allow-empty -m "Empty"</code>
   * 修改上一次commit的message: <code bash>git commit --amend -m "new msg" </code>   * 修改上一次commit的message: <code bash>git commit --amend -m "new msg" </code>
-  * 保存用户名和密码, 节省下次输入:<code bash>git config credential.helper store</code> <wrap hi>注意这样会明保存密码到</wrap> '' ~/.git-credentials''+  * 设置 vim 为默认编辑器:<code bash>git config --global core.editor "vim"</code> 
 +  * 删除某件的所有历史记录,[[https://blog.csdn.net/yxpandjay/article/details/111275665|参考]]: 
 +    * 查找大文件:'' git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')" '' 
 +    * 从历史记录删除:'' git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch "your/big.file"HEAD --all  '' 
 +  * 显示差异时忽略行尾空格差异: <code bash>git diff --ignore-space-at-eol</code> 
 ==== server: gitolite ==== ==== server: gitolite ====
   * [[http://gitolite.com/gitolite/index.html|gitolite docs]]   * [[http://gitolite.com/gitolite/index.html|gitolite docs]]
行 139: 行 144:
 但对使用者来说, 命令的正交性不强这一点, 就造成了使用者需要记住大量单独的命令. 但对使用者来说, 命令的正交性不强这一点, 就造成了使用者需要记住大量单独的命令.
 考虑找个或弄个简化版的本地版本控制系统, 或者做个git的命令包装. 考虑找个或弄个简化版的本地版本控制系统, 或者做个git的命令包装.
 +这篇文章不错:https://www.highflux.io/blog/what-makes-git-hard-to-use
 </WRAP> </WRAP>
  
  • public/it/git.1639118663.txt.gz
  • 最后更改: 2021/12/10 14:44
  • oakfire