07. Git 命令实战
初始化仓库并推送到远端
1. 初始化
1 | echo "# MyProject" >> README.md |
2. 然后可以愉快的进行开发了
1 | add . |
3. 进行推送(如果本身已经是 git 仓库了,直接走到第 3 步骤)
1 | # 将本地仓库关联一个远程库 |
Git 代码库迁移
1 | # 从原地址克隆一份裸版本库 |
1 | git remote set-url origin https://codeup.aliyun.com/5eacd74338076f00011bc59e/hexo-src.git |
或者两条命令变成一条, 进行推送
1 | git push --mirror https://codeup.aliyun.com/5eacd74338076f00011bc59e/hexo-src.git |
-
其中 git clone --bare 创建的克隆版本库都不包含工作区,直接就是版本库的内容,这样的版本库称为裸版本库。
-
其中 git clone --mirror 远程跟踪设置,所以如果你运行 git 远程更新所有参考将被覆盖从原点,如果你刚刚删除镜像并重新登记。正如文档最初说的,它是一面镜子。它应该是一个功能相同的副本,可以与原件互换。
-
git push --mirror
1 | Instead of naming each ref to push, specifies that all refs under |
简而言之 -- mirror
强制推送 all refs under refs/ 下的所有. 保持绝对的同步.
撤销修改
场景 1:当你改乱了工作区某个文件的内容,还未提交到工作区, 且想直接丢弃工作区的修改时,用命令 git checkout -- file
。用干净暂存区内容(同版本库)去覆盖工作区的内容。
场景 2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令 git reset HEAD file
,就回到了场景 1,第二步按场景 1 操作。
reset 和 revert
本地分支可以 reset, 回退分支
revert 回归分支会生成新的提交记录, 远程分支建议如此操作.
如何修改老旧的 commit 信息
git rebase -i commit-id
commit-id 指的是要修改的节点的父节点.
使用 r 命令
如何多个 commit 整理合并成
git rebase -i commit-id
commit-id 指的是要修改的节点的父节点.
然后使用 s 标记进行精简。
git 移除已提到到版本库的文件
请使用 git rm --cached
命令
发现 .idea 文件夹下的文件还有变更被提交,这是因为在使用 gitignore 之前,此文件就以及被跟踪了,这样的话需要移除跟踪,如下命令:
移除单个文件
git rm --cached --force ydq-api/ydq-api.iml
移除指定文件夹即文件夹下所有文件:
git rm --cached --force -r .idea/
git 如何修改远程 URL
1 | # 先查看 remote 的名字 |
删除远程分支
方法一
1 | git push 主机名 :远程分支 |
如果一次性删除多个,可以写多个
1 | git push 主机名 :远程分支名 :远程分支名 :远程分支名 |
方法二
另外一个删除分支的命令是
1 | git push 主机名 --delete 远程分支名 |
方法三
1 | git branch -r -d origin/branch-name |
自动补全
在输入 Git 命令的时候可以敲两次跳格键(Tab),就会看到列出所有匹配的可用命令建议
设置 http 代理
1 | # 开启 http 代理 |
参考
很好的参考文章:
https://fle.github.io/git-tip-keep-your-branch-clean-with-fixup-and-autosquash.html