git
一、常用:本地git和远程连接
1.1 没有仓库的情况
mkdir bamboo-notes |
1.2 有仓库的情况
cd existing_git_repo |
1.3 远程仓库和本地仓库内容不一致情况
# 拉取远程仓库的内容和本地仓库合并 |
二、BASIC
2.1 分布式版本控制
用户->本地repository->中央repository
2.2 commit
用户-操作文件->仓库路径(本地文件夹)- commit比对文件(修改,增加,删除操作) ->.git(本地仓库)
2.3 .git
每次提交时都有版本号,版本号由40个16进制数字组成
2.4 branch
分支:Git仓库副本,所有的分支操作完成后通过merge合并为主程序
*注:分支切换会导致当前本地仓库内文件的不同
2.5 merge
合并:合并main分支和其他分支,两两合并
合并冲突:在冲突中删除鲜明冲突保存即可
Tag:增加Tag标签可以显示表名合并内容信息
2.6 GitHub and gitee
创建仓库public,初始化README.md
2.7 .gitignore
提交忽略文件,例:*.bak /public
2.8 IDEA集成Git
VCS直接推送到GitHub,无需git init
2.9 Gitee集成Git
plugins下载gitee插件
三、EXPERT
版本号:
- SHA-1:40位
- 定位仓库的名:2文件夹+38文件名
- 查看文件(提交信息):git cat-file -p 版本号
- 得到三个分支:
- tree:新的版本号
- author:用户信息
- committer:提交者用户信息
- 得到三个分支:
- 获取实际内容:git cat-file -p tree的版本号
四、Git命令
版本查看:git -v
4.1 全局配置
git config --global user.name bamboo |
4.1.1 Alias美化git log
使用 git log
命令可以查看 Git 仓库中的提交记录,但是默认情况下输出的信息比较简单,不够美观。可以使用 alias
对 git log
命令进行美化,使其输出更加易读。
以下是一个简单的 alias
设置,可以将 git log
命令的输出美化:
git config --global alias.l "log --pretty=format:'%C(auto)%h %Cblue%>(12)%ar %Cgreen%<(15)%an %Creset%s'" |
这个 alias
将 git log
命令设置为 git l
的别名。在 git log
命令的基础上,使用 --pretty=format
选项指定输出格式,其中 %C(auto)
用于自动选择颜色,%h
用于显示短哈希值,%ar
用于显示相对时间,%an
用于显示提交者的名字,%s
用于显示提交消息。此外,使用 %>(12)
和 %<(15)
控制作者名字的最小和最大宽度。
执行上述命令后,就可以使用 git l
命令来查看 Git 仓库中的提交记录,并获得更加美观的输出。你可以根据自己的需要修改上述命令中的输出格式,以满足个性化的需求。
4.2自己创建
git init //初始化 |
4.3 远程仓库创建
git clone remote-url [可选:自定义克隆目录] //克隆远程仓库到本地 |
4.4 常用命令
- git status //查看commit状态
- git log //查看提交信息
- git log –oneline //单行查看提交信息
4.5 commit提交
- git add . | fileName | *.txt
- git commit -m ‘msg’
- git commit -am ‘msg’ // ==git add . + git commit -m ‘msg’
4.6 reset恢复
- git restore fileName //误删后恢复文件,误删被提交后无法恢复
- git reset –hard 参数 // 参数使用git log –oneline查找,恢复的是之前的提交记录
- git revert 参数 // 参数同reset相同,但会返回参数提交记录中的数据和当前已存在的数据的合并,不会丢失当前拥有的文件
4.7 branch分支
- git branch 分支名 // 创建分支,前提:需要有提交的数据
- git checkout -b 分支名 // 创建分支并使用
- git branch // 查看当前仓库的分支名
- git branch -v // 查看当前仓库的分支及部分信息
- git branch -a // 查看当前仓库和远程仓库的分支名
- git branch -va
- git branch -d 分支名 // 删除分支,未合并分支不会被删除
- git branch -D 分支名 // 强制删除
- git branch -M main // 将当前分支名修改为main
- *git push -u origin main // -u将本地当前分支和远程main分支关联,以后推送和拉取直接使用git push | git pull命令即可
- git checkout 分支名 // 切换分支
- git push origin –delete 分支名 // 删除远程仓库分支,origin为远程git仓库名称
- git remote update // 从远程仓库中拉取最新的信息,并更新本地缓存,可以更新删除的远程仓库
- git checkout master – 将master分支的所有内容强制覆盖到当前分支下
4.8 merge合并
git merge 分支名 //将分支合并到当前分支
合并冲突时手动修改冲突,重新commit提交
4.9 tag标签
标签tag不可重复
git log --oneline // 获取提交的信息 |
- git tag 标签 版本号 // 给修改信息增加标签 git tag upfile cb0f7c7
- git log upfile // 获取刚才通过git tag 修改后的分支
- git tag -d 标签 // 删除指定标签
4.10 remote远程
git remote add origin 远程仓库
git remote remove origin
git remote rename
git push -u origin main // 第一次上传使用,main为分支名
git push –force // git reset回退版本后使用,强制提交
git push // 普通方式提交
git pull // 普通方式拉取
4.11 ssh安全证书
要创建 SSH 密钥,可以使用 ssh-keygen
命令。该命令会生成一对公钥和私钥,其中私钥保存在本地计算机上,而公钥则可以添加到 Git 托管服务提供商的账户中,以便进行身份验证。
ssh-keygen -t rsa -b 4096 -C 'yt000000x@163.com'
-t
选项指定密钥的类型,这里使用的是 RSA;-b
选项指定密钥长度;-C
选项可以添加注释,以便于识别该密钥对应的账户。输入密码短语(passphrase),这是一个可选的步骤,用于保护私钥,防止未经授权的访问。如果不需要密码短语,可以直接按回车键跳过。
生成密钥对后,可以在保存路径中找到两个文件:
id_rsa
和id_rsa.pub
。其中,id_rsa
是私钥文件,需要妥善保管;id_rsa.pub
是公钥文件,需要添加到 Git 托管服务提供商的账户中。
cat ~/.ssh/id_rsa.pub
复制公钥信息后粘贴进github或gitee个人信息中的公钥
ssh -T git@github.com
验证ssh是否成功
git remote add origin git@github.com:user/repo.git
五、GitLab
- *代码托管平台
- centos版本
- 运行在linux系统