一、常用:本地git和远程连接

1.1 没有仓库的情况

mkdir bamboo-notes
cd bamboo-notes
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/dragonbamboo/bamboo-notes.git
git push -u origin "master"

1.2 有仓库的情况

cd existing_git_repo
git remote add origin https://gitee.com/dragonbamboo/bamboo-notes.git
git push -u origin "master"

1.3 远程仓库和本地仓库内容不一致情况

# 拉取远程仓库的内容和本地仓库合并
git pull --rebase origin master
# 最后推送
git push -u origin master
# 绑定一次后git push即可

二、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文件名
  1. 查看文件(提交信息):git cat-file -p 版本号
    • 得到三个分支:
      • tree:新的版本号
      • author:用户信息
      • committer:提交者用户信息
  2. 获取实际内容:git cat-file -p tree的版本号

四、Git命令

版本查看:git -v

4.1 全局配置

git config --global user.name bamboo

git config --global user.email yt000000x@163.com

4.1.1 Alias美化git log

使用 git log 命令可以查看 Git 仓库中的提交记录,但是默认情况下输出的信息比较简单,不够美观。可以使用 aliasgit log 命令进行美化,使其输出更加易读。

以下是一个简单的 alias 设置,可以将 git log 命令的输出美化:

git config --global alias.l "log --pretty=format:'%C(auto)%h %Cblue%>(12)%ar %Cgreen%<(15)%an %Creset%s'"

这个 aliasgit 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 // 获取提交的信息

--eba10b9 commit--

git log --oneline eba10b9 // 获取版本号之前的提交信息

--79e7273 Ino--
--cb0f7c7 init--
  • 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 托管服务提供商的账户中,以便进行身份验证。

  1. ssh-keygen -t rsa -b 4096 -C 'yt000000x@163.com'

    • -t 选项指定密钥的类型,这里使用的是 RSA;-b 选项指定密钥长度;-C 选项可以添加注释,以便于识别该密钥对应的账户。

    • 输入密码短语(passphrase),这是一个可选的步骤,用于保护私钥,防止未经授权的访问。如果不需要密码短语,可以直接按回车键跳过。

    • 生成密钥对后,可以在保存路径中找到两个文件:id_rsaid_rsa.pub。其中,id_rsa 是私钥文件,需要妥善保管;id_rsa.pub 是公钥文件,需要添加到 Git 托管服务提供商的账户中。

  2. cat ~/.ssh/id_rsa.pub

    • 复制公钥信息后粘贴进github或gitee个人信息中的公钥

    • ssh -T git@github.com

    • 验证ssh是否成功

  3. git remote add origin git@github.com:user/repo.git

五、GitLab

  • *代码托管平台
  • centos版本
  • 运行在linux系统