这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加的,后面慢慢增加了许多内容,可以看出的的学习轨迹。分享出来方便自己查看,也许能帮助到你。
笔记在这里持续更新 Git常用命令清单笔记
官方教程,在 Linux/Unix 系统中,通过工具在中安装 ,这种方式比较简单,便于升级卸载工具。
下面介绍在 CentOS 系统中,通过 yum 来安装 git
Red Hat Enterprise Linux, Oracle Linux, CentOS, Scientific Linux, et al.
RHEL and derivatives typically ship older versions of git. You can download a tarball and build from source, or use a 3rd-party repository such as the IUS Community Project to obtain a more recent version of git.
官方文档说 git 在 和衍生产品通常都会发布旧版本的 ,我们需要源码编译安装,或者使用第三方存储库(如IUS社区项目)。
现在我们通过,IUS社区下载 ius-release.rpm 文件进行安装
查看可安装的git安装包
yum 卸载 git 安装新版本
卸载 的 ,安装 的
首先是配置帐号信息 测试。
不再将文件的权限变化视作改动
自动转换坑太大,提交到git是自动将换行符转换为lf
这个密钥用来跟 github 通信,在本地终端里生成然后上传到 github
1.生成指定名字的密钥
会生成 和 这两个文件
2.密钥复制到托管平台上
打开公钥文件 ,并把内容复制至代码托管平台上
3.修改config文件
#修改config文件,如果没有创建
- 这里是个别名可以随便命名
- 一般是网站如: 填写
- 通常填写
- 使用的公钥文件地址
4.测试
5.使用
5.注意
如果你修改了id_rsa的名字,你需要将ssh key添加到SSH agent中,如:
编辑
上面配置完了,可以通过命令登录,不需要输入IP地址和密码
通过上面方式克隆可能需要密码,解决办法:进入当前克隆的项目 编辑 , 按照下面方式修改,你就可以提交代码不用输入密码了。
1. 增加3个远程库地址
2. 删除其中一个 set-url 地址
3.推送代码
4.拉代码
只能拉取 里的一个url地址,这个fetch-url
默认为你添加的到 的第一个地址
如果远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对应的本地分支。这是为了防止,由于其他人操作了远程主机,导致git pull不知不觉删除了本地分支。
但是,你可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的分支。
5.更改pull
只需要更改config文件里,那三个url的顺序即可,fetch-url会直接对应排行第一的那个utl连接。
出现错误
解决方法:
通过存储暂存区stash,在删除暂存区的方法放弃本地修改。
对两个分支,同时都拥有的文件,进行修改后,再同时 到这两个分支,比如 分支和 分支,都拥有文件 ,在 或者 分支下对 进行修改后,把修改的 同时提交到 分支和 分支。
现在有两个仓库 kktjs/kkt 和 kktjs/kkt-next 我们需要将 仓库合并到 并保留 的所有提交内容。
在合并时有可能两个分支对同一个文件都做了修改,这时需要解决冲突,对文本文件来说很简单,根据需要对冲突的位置进行处理就可以。对于二进制文件,需要用到如下命令:
保存并退出,会弹出下面提示
这个功能在Github上可以玩儿,Gitlab上特别老的版本不能玩儿哦,那么如何跟随着commit关闭一个issue呢? 在confirm merge的时候可以使用一下命令来关闭相关issue:
、 、 、 、 、 、
Github教程同步fork教程,在Github上同步一个分支(fork)
设置添加多个远程仓库地址。
在同步之前,需要创建一个远程点指向上游仓库(repo).如果你已经派生了一个原始仓库,可以按照如下方法做。
同步更新仓库内容
同步上游仓库到你的仓库需要执行两步:首先你需要从远程拉去,之后你需要合并你希望的分支到你的本地副本分支。从上游的存储库中提取分支以及各自的提交内容。 将被存储在本地分支机构
检查你的 fork's 本地 分支
合并来自 的更改到本地 master 分支上。 这使你的前 fork's 分支与上游资源库同步,而不会丢失你本地修改。
以 tsbbjs/tsbb 为例,合并来自 jaywcjlove/tsbb master分支的 。
这是 Github官方教程
1.克隆仓库
注意参数,这个不是普通的clone,clone下来的仓库并不能参与开发
2.命令行中运行代码
OLD_EMAIL原来的邮箱
CORRECT_NAME更正的名字
CORRECT_EMAIL更正的邮箱
将下面代码复制放到命令行中执行
执行过程
3.同步到远程仓库
同步到push远程git仓库
我还遇到了如下面错误,lab默认给master分支加了保护,不允许强制覆盖。->-> 菜单下面的把master的保护去掉就可以了。修改完之后,建议把master的保护再加回来,毕竟强推不是件好事。
当上面的push 不上去的时候,先 确保最新代码
4. 删除仓库
配置好后再输入git命令的时候就不用再输入一大段了,例如我们要查看状态,只需:
在空文件夹中建立一个文件 , 你就可以提交这个空文件夹了。
#初始化
#获取状态
# .或*代表全部添加
# 在commit之前撤销git add操作
# 好像比上面更方便
#此处注意乱码
#添加源
git clone支持多种协议,除了HTTP(s)以外,还支持SSH、Git、本地文件协议等,下面是一些例子。
存储当前的修改,但不用提交 commit
克隆项目同时克隆 submodule
克隆项目,之后再手动克隆 submodule 子项目
当使用下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令:
下面是更改 文件内容
git是一个分布式代码管理工具,所以可以支持多个仓库,在git里,服务器上的仓库在本地称之为remote。个人开发时,多源用的可能不多,但多源其实非常有用。
当开发到一定阶段时,给程序打标签是非常棒的功能。
Pretty Formats
改成
1.
解决办法:更换remote地址为 的
2.
解决github push错误的办法:
3. git status 显示中文问题
在查看状态的时候 git status 如果是中文就显示下面的情况
解决这个问题方法是:
4. The authenticity of host 192.168.0.xxx can't be establis
修改 中的 的 为 解决问题。
5. SSH连接时出现 Host key verification failed 的原因及解决方法
用 OpenSSH 的人都知 ssh 会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH 会核对公钥。如果公钥不同,OpenSSH 会发出警告,避免你受到 DNS Hijack 之类的攻击。
SSH 对主机的 public_key 的检查等级是根据
【解决方法1】在 (或者)中配置:
解决方法 2
5. insufficient permission for adding an object to repository database .git/objects
- Git官网
- Github 15分钟学习Git
- Git参考手册
- Git简明手册
- Git Magic
- Git Community Book 中文版
- Pro Git
- 图解Git
- git-简明指南
- learnGitBranching 在线学习工具
- 初级教程
- 廖雪峰的Git教程
- 蒋鑫老师将带你入github的大门
- git详解
- oschina教程
- How to undo (almost) anything with Git撤销一切,汇总各种回滚撤销的场景,加强学习。
- Git 教程 | 菜鸟教程runoob.com
- Git 本地仓库和裸仓库
- 沉浸式学 Git
- Git进阶用法,主要是rebase高级用法
- 成为一个git大师
- 高质量的Git中文教程
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/9255.html