Git的小技巧,持续更新中
方法1
git push origin --delete [branch_name]
方法2
git push origin : [branch_name]
git branch -D [branch_name]
git remote rename origin old-origin //把旧远端仓库改个名字,当前的一般默认origin
git remote add origin http://10.0.0.XXX/management/myTest.git //新的git地址是自动生成的
git push -u origin --all //同步推送远端仓库
git push -u origin --tags //同步推送远端仓库
git config --global --list //查看配置
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
git rebase -i commit_id(start) commit_id(end)
这里需要注意,commit_id->(start,end],是前开后闭的。
编辑commit内容,将pick修改为squash,将commit进行合并。
Commands 说明,以下单字符命令为简写命令。
p, pick: 保留该 commit。
r, reword: 保留该 commit,可以修改 commit 的注释。
e, eidt: 保留该 commit,但停下来修改该 commit (不仅仅是注释),可以用来解决 merge 冲突。
s, squash: 将该 commit 和 前面一个 commit 合并。
f, fixup: 将该 commit 和 前面一个 commit 合并,但不保留该提交的注释信息。
x, exec: 执行 shell 命令。
d, drop: 丢弃该 commit。
合并后修改commit注释,直接编辑即可。
参考自:https://zhuanlan.zhihu.com/p/437636081
$ git commit --amend --message="modify message by xxtest" --author="xxxxx "
# 仅修改 message 信息
$ git commit --amend --message="modify message by xxtest"
# 仅修改 author 信息
$ git commit --amend --author="xxxxx "
git tag -d tag-name
git push origin :refs/tags/tag-name
如果pod tag后,删除tag再添加同名的tag,pod会使用tag缓存。
破解办法
pod cache clean 你的库名字
对于一些已经加入到git版本控制的临时代码(如target下编译的class文件,根本不需要git追踪),如果每次提交都要手动去除,还是很麻烦的。那么如何清除这些已经加入到版本控制的代码呢?
如果是忽略文件的话 git rm --cached 文件名
如果是忽略文件夹的话 git rm -r --cached 文件夹名
git cherry-pick commit_id
git cherry-pick commit_id..commit_idn
或者
git cherry-pick commit_id commit_idx commit_idy
git checkout filePaht/Directory
需要注意的是,使用 checkout 命令会覆盖掉本地的修改,所以在使用前需要将本地的修改进行备份或者提交到版本库。
这个命令的含义是将该文件从暂存区恢复到工作区,也就是取消对该文件的暂存。如果我们刚刚将该文件删除时没有执行 commit 命令,则该文件是在暂存区被删除的。使用 reset 命令可以将该文件从暂存区恢复到工作区。
需要注意的是,使用 reset 命令不会删除文件,只是将文件从暂存区移动回工作区。如果需要将文件完全删除,则可以使用 rm 命令将其删除,然后再使用 commit 命令提交删除操作。
2. git reset
git reset HEAD filePaht/Directory
这个命令的含义是将该文件从暂存区恢复到工作区,也就是取消对该文件的暂存。如果我们刚刚将该文件删除时没有执行 commit 命令,则该文件是在暂存区被删除的。使用 reset 命令可以将该文件从暂存区恢复到工作区。
需要注意的是,使用 reset 命令不会删除文件,只是将文件从暂存区移动回工作区。如果需要将文件完全删除,则可以使用 rm 命令将其删除,然后再使用 commit 命令提交删除操作。
git remote prune origin
prune /pruːn/
v.修剪,修整;删除,削减
n.李子干,西梅干;<非正式>讨厌的人,乏味的人;(树枝、灌木丛等的)修剪,修整
遇到的问题:
cannot lock ref 'refs/remotes/origin/bugfix/bug': 'refs/remotes/origin/bugfix' 已存在,无法创建 'refs/remotes/origin/bugfix/bug'
来自 gitlab.zhangyue-inc.com:dejian_ios/iReaderDejian
! [新分支] bugfix/bug -> origin/bugfix/bug (不能更新本地引用)
git fetch/ pull 拉取远端分支失败。提示如上错误。
参考:
https://editor.csdn.net/md/?articleId=134030957
https://blog.csdn.net/wangqingpei557/article/details/53147086