git操作

Lin

Lin

xiaominglin789

国内淘宝镜像中心,解决各种软件、库下载慢:

淘宝镜像中心)

Git

linux之父(李纳斯-托沃兹)开发的版本控制工具:Git

企业分支管理

企业分支管理模板

Git配置

  • 1.git-系统配置 对应目录文件配置: 软件安装目录\etc\gitconfig
git config -l
  • 2.git-global配置(不配置,不会生成文件) 对应目录文件配置: C:\Users\apem\gitconfig
git config --global --list
# 可以设全局公用识别的 邮箱和用户名
git config --global user.name 'xxxxxx'
git config --global user.email 'xxxxx@xxx.com'
  • 3.项目单独git配置 对应目录文件配置: 项目跟目录 .git\config
# 查看
git config --list
# 为项目设置单独的user.name和user.email
git config user.name 'xxxxxx'
git config user.email 'xxxxx@xxx.com'

Git-初始化

  • 1.本地初始化
git init
  • 2.远程拉取
git clone 远程仓库地址

本地仓库与远程仓库的关联

# 本地-建立关联-远程
git remote add origin 远程仓库地址
# 本地-取消关联-远程
git remote rm origin

保存和提交

  • 1.查看状态
git status
  • 可以:查看 所有 / 某个文件 修改详情
git diff HEAD <查看某个文件>
  • 2.先查看状态,有修改时,可以保存当前修改(添加进暂存区)
  • ".": 所有修改文件
git add .
git add xxxxx(指定保存的文件)
  • 可以: 撤销-添加的操作
git reset HEAD
  • 3.添加保存说明(提交到本地仓库)
git commit -m '对这次保存添加说明描述'
  • 4.(针对多人协作)提交前,先拉取一下当前分支的最新代码,解决下未来的冲突
git pull origin 当前分支
  • 5.解决掉冲突(没有冲突) 再提交
git push origin 当前分支

Git时光穿梭机

先学会查看提交记录

  • 1.查看曾经的提交记录(一行行显示)
  • 2.可选项,只显示n条:-1~n
git log --pretty=oneline
或,显示5条
git log -5 --pretty=oneline
  • 3.查看当前版本标志位
git reflog

回退到曾经的某个版本

  • 1.回退到上一个版本
git reset --hard HEAD^
  • 2.回退到当前的前n个版本
git reset --hard HEAD~数字

去到某个版本指定的

  • 1.先查看当前版本标志位
git reflog
  • 2.去到未来未来某个版本
git reset --hard 某个版本号

git分支指令

  • 1.查看分支
git branch -a
  • 2.切换分支
git checkout 分支名
  • 3.创建本地分支
git branch 新分支名
# 创建并切换到新分支
git checkout -b 新分支名
  • 4.推送本地分支到远程仓库
git push origin 新分支名
  • 5.删除本地某个分支
    • '-d' 删除
    • '-D' 强制删除
git branch -d 分支名
  • 6.删除远程仓库的某个分支
    • '--delelte' 删除
git push origin --delelte 分支名

git合并分支

# 把 分支b 合并到 分支a 上
git checkout 分支a
git merge --no-ff 分支b

解决合并冲突:

  • 1.将<<<<<<< <分支名> ======== >>>>>>>><分支名> 根据实际业务情况处理冲突, 删掉<<<<<<< <分支名> ======== >>>>>>>><分支名>字符串
  • 2.git add <已修改冲突文件>
  • 3.git commit -m "合并日志"
  • 4.分支名由(first|MERGING)变成(first)说明合并成功

git标签-tag

给发行版本添加标签标识,如: v1.0.0、v1.2.0、v2.0.0

  • 1.查看tag列表
git tag -l
  • 2.本地添加tag
git tag -a 标签名 -m '版本说明'
  • 3.查看tag信息
git show 标签名
  • 4.本地删除某个tag
    • '-d' 删除
    • '-D' 强制删除
git tag -d 标签名
  • 5.推送本地tag到远程仓库
git push origin 标签名
  • 6.删除远程仓库tag
git push origin --delete 标签名

使用ssh连接远程仓库

密钥文件会自动存放到: ~/.ssh/

  • 1.生成本地密钥
# 1.
ssh-keygen -t rsa -C '随意名<最好email>'
# 2.给密钥文件起名: 平台_平台账号_rsa 如, github_xxx_rsa / gitee_xxx_rsa / gitlab_xxx_rsa
# 3.设置密码
  • 2.测试能否正常连接平台
ssh -T git@平台主机域名
ssh-T git@github.com

关于配置"一台电脑连接不同托管平台"和"一台电脑连接不同账号的同一托管平台"

1.生成多个密钥 2.在 ~/.ssh/ 新建config文件, 并编写config文件 -> 不同平台、不同账号的主机、密钥配置

cd ~/.ssh/
vim config
  • config-文件配置参考如下:
# 1.gitee 账号1 配置
host gitee.com
Hostname gitee.com
User apem789
IdentityFile ~/.ssh/gitee_apem789_rsa
# 2.github 账号1 配置
host github.com
Hostname github.com
User apem789
IdentityFile ~/.ssh/github_apem789_rsa
# 3.github 账号2 配置
host xiaominglin789.github.com
Hostname github.com
User xiaominglin789
IdentityFile ~/.ssh/github_xiaominglin789_rsa

4.拉取的仓库使用 ssh 的方式, https拉取的项目要修改origin-host。

git clone git@[~/.ssh/config的对应仓库的host]:xiaominglin789/test.git

5.重新配置项目的user.name、user.email remote

cd 项目目录
# 1.删掉原先的origin-host-url,重新设置remote管理仓库地址
git remote rm origin
git remote add origin git@xiaominglin789.github.com:xiaominglin789/test.git
# 2.给项目单独配置user.name和user.email
git config user.name 'xiaominglin789'
git config user.email 'xiaominglin789@gmail.com'
  • 参考配置结果如下:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = git@xiaominglin789.github.com:xiaominglin789/lin-blog.git
fetch = +refs/heads/*:refs/remotes/origin/*
[user]
name = xiaominglin789
email = xiaominglin789@gmail.com