git常用命令
其他参考
A. 入门内容
git config
在git中,使用git config 命令来配置 git 的配置文件,git配置级别主要有3类:
- 仓库级别 local 本地 Git 仓库级别配置文件,作用于当前仓库。【优先级最高】
- 用户级别 global,全局配置文件,作用于所有用户。【优先级次之】
- 系统级别 system,作用于系统所有用户和所有库。【优先级最低】
git config -l查看所有的配置信息,依次是系统级别、用户级别、仓库级别
git config —local -l 查看仓库配置
git config —global -l 查看用户配置
git config —system -l 查看系统配置
git config 添加配置文件
git config —global user.email “You Email”
git config —global user.name “Your Name”
git config -e 编辑配置文件
git config —local -e 编辑仓库级别配置文件
git config —global -e 编辑用户级别配置文件
git config —system -e 编辑系统级别配置文件
编辑会打开一个 Vim 编辑器,很多人可能不会用。
打开 Vim 编辑器后,键盘按下字母 O 键开始编辑
保存并退出编辑 Esc ——> :wq
退出编辑 Esc ——> :q
强制退出编辑 Esc ——> :q!
git clone
git clone 拉取仓库到新的目录
git clone \
git clone -b \
git clone —recursive \
git submodule update —init —recursive 提取并初始化submodule(如果没有git clone —recursive可以这么补救,参考链接)
git clone \
git fetch
git fetch 创建并更新本地远程分支
git fetch origin 手动指定要 fetch 的 remote,在不指定分支时通常默认为 master;
git fetch origin master:temp 如在本地新建一个temp分支,并将远程 origin 仓库的master 分支代码下载到本地 temp 分支
git diff temp 比较本地代码与刚刚从远程下载下来的代码的区别
git merge temp 合并代码
git branch -d temp 不想要 tmp 分支,删除分支
git pull
git pull 将更新从远程仓库合并到当前分支。在默认模式下,git pull == git fetch + git merge。
git pull <远程主机名> <远程分支名>:<本地分支名>
如 git pull origin master
git pull 取回远程仓库某个分支的更新,再与本地的指定分支自动合并,可能会出现代码冲突。
git fetch 先获取远程仓库某个分支的更新,再执行 merge,相比 pull ,fetch 更可控。
git add
git add -A 添加所有文件到暂存区
git add -u 添加被修改(modified)和被删除(deleted)文件到暂存区,不包括新文件(new)
git add . 添加新文件(new)和被修改(modified)文件到暂存区,不包括被删除(deleted)文件
可以通过 git status 检查文件是否已添加完毕。
git commit
git commit -m “” 比较常见的用法,-m “填写更新记录”
git commit -a -m “” 提交所有已跟踪的执行修改或删除、新建的文件,即使没有执行 git add 添加到暂存区的文件。
git commit —amend 追加提交,可以在不增加新的 commit-id 的情况下将新修改的代码追加到前一次 commit-id 中。如不小心提交了一版没有修改完成的版本上去,还需要修改完善后再提交,又不想再次增加一个 commit-id 时,可以使用追加提交。
git commit —help 查看帮助
git push
git push 将已经 commit 的文件推送到远程仓库的分支
git push origin master 推送到 master 分支
git push —all origin 推送本地仓库所有分支到远程仓库分支
git push origin :master 删除远程分支,等同于 git push origin —delete master
git push -u origin master 将本地的 master 分支推送到 origin 主机,同时指定 origin 为默认主机。
git remote
git remote -v 查看远程仓库地址
git remote set-url origin
git remote rm origin 删除远程仓库地址
git remote add origin [url] 添加远程仓库地址
git merge
git merge 合并代码
git merge —no-commit 防止合并失败不自动提交
git merge —no-ff 不使用fast-forward方式合并,创建一个 merge 的 commit 信息。
git count-objects
git count-objects -v -H 查看仓库大小(以MB为单位)
git count-objects -v 查看仓库大小(以字节为单位)
git filter-branch:https://www.php.cn/manual/view/34955.html
B.博客与解决方案汇总
彻底删除不用的大文件
- 验证过好用的指令:https://blog.csdn.net/FRIGIDWINTER/article/details/115945662
- 全流程:https://blog.csdn.net/chenhuolv9091/article/details/100840415
- push tags:https://blog.csdn.net/weixin_42360778/article/details/112631694
- 查看仓库大小的命令:https://blog.csdn.net/taoyafan/article/details/86716280
- findBigFile.sh:https://blog.csdn.net/weixin_29145157/article/details/112631695
gitignore
修改commit
一、commit到本地版本库
- 命令行执行:
git commit --amend
,git commit –amend
既可以对上次提交的内容进行修改,也可以修改提交说明 - 利用vim语法,点击i进入编辑模式,修改对应文本内容
- 点击Esc退出编辑模式
- 按键:wq强制退出
二、修改以往n次提交的信息
- 使用
git rebase -i HEAD~n
命令 n是以往第n次的提交记录,这里是修改以往第二次的记录,所以n=2,最终命令是git rebase -i HEAD~2
- 你想修改哪条注释 就把哪条注释前面的
pick
换成edit
。方法就是上面说的编辑方式:i
—-编辑,把pick
换成edit
—-Esc
—-:wq
. - 退出来之后,执行
git commit --amend
命令 - 然后wq退出来之后,记得执行
git rebase --continue
- 如果修改远程的提交信息。首先,你把最新的版本从远程仓库先pull下来,修改的方法都如上,最后修改完成后,强制push到远程仓库:
git push --force
。强制提交之前,注意检查你的代码是否最新的,否则很有可能覆盖了同事的代码!
三、push到远程之后
git log
获取历史提交信息git rebase -i HEAD~6
,这里的6是指展示最近6次push- 找到需要修改添加提交信息的push,将其最前面的pick 修改为edit, 然后执行按ESC退出编辑,再执行 :wq 退出
- pick:
- 后续我们会看到这样的提示信息:
- 执行
git commit --amend
,按照commit到本地版本库的方式修改即可 git rebase --continue
- push到远程:
git push origin <your branch nama> -f
Git历史版本查看(log)和前进后退(reset)
https://zhuanlan.zhihu.com/p/195543519
C.远程仓库相关
git remote -v 查看远程仓库
git push —all origin 推送所有分支到远程仓库
git push每次都要输入密码,应该是没有设置为ssh,参考下图
git远程仓库修改与删除:https://blog.csdn.net/qq_29232943/article/details/104637674
解决办法
git报错fatal: unable to access \’‘: OpenSSL SSL_read: Connection was reset
bug描述:
fatal: unable to access ‘https://github.com/…’: OpenSSL SSL_read: Connection was reset, errno 10054
bug产生原因:
一般是这是因为服务器的SSL证书没有经过第三方机构的签署,所以才报错
bug 解决方法:
参考网上解决办法:解除ssl验证后,再次git即可
1 |
|
draw_bed_token:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!