git操作
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.emailgit 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.comHostname gitee.comUser apem789IdentityFile ~/.ssh/gitee_apem789_rsa# 2.github 账号1 配置host github.comHostname github.comUser apem789IdentityFile ~/.ssh/github_apem789_rsa# 3.github 账号2 配置host xiaominglin789.github.comHostname github.comUser xiaominglin789IdentityFile ~/.ssh/github_xiaominglin789_rsa
4.拉取的仓库使用 ssh 的方式, https拉取的项目要修改origin-host。
git clone git@[~/.ssh/config的对应仓库的host]:xiaominglin789/test.git5.重新配置项目的user.name、user.email remote
cd 项目目录# 1.删掉原先的origin-host-url,重新设置remote管理仓库地址git remote rm origingit remote add origin git@xiaominglin789.github.com:xiaominglin789/test.git# 2.给项目单独配置user.name和user.emailgit config user.name 'xiaominglin789'git config user.email 'xiaominglin789@gmail.com'
- 参考配置结果如下:
[core]repositoryformatversion = 0filemode = falsebare = falselogallrefupdates = truesymlinks = falseignorecase = true[remote "origin"]url = git@xiaominglin789.github.com:xiaominglin789/lin-blog.gitfetch = +refs/heads/*:refs/remotes/origin/*[user]name = xiaominglin789email = xiaominglin789@gmail.com