Git
linux安装
sudo apt-get install git
window
安装完成后,需要进行设置,在命令行输入以下代码设置你的名字和Email地址:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
执行完之后配置保存在~/.gitconfig文件中
cat ~/.gitconfig
并且可以通过下方的命令查看一下用户名和密码:
$ git config user.name
$ git config user.email
这时候如果没有报错,那么git就安装成功了。
使用git config -l 可以查看现在的git环境详细配置:
#查看系统config
git config --system --list
#查看当前用户(global)配置
git config --global --list
#查看当前仓库配置信息
git config --local --list
配置远程环境
使用ssh-keygen命令可以获取到公钥和私钥。
将本机的公钥放到远程gitLab平台上面。 公钥位置在~/.ssh/authorized_keys。
ssh-keygen -t rsa -C "xxxxx@xxxxx.com邮箱账号"
cat ~/.ssh/id_rsa.pub
git remote add origin ssh秘钥
git的工作流程一般是这样的:
1、在工作区中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)。
命令
git init
git add
git commit -m
提交信息写错了的时候
commit id: a46e04a这条提交信息写错了,我们修改提交信息,可以这样操作 git commit --amend -m “XXX”.
git status
git push
modified了,但是还没有提交修改。还可以使用git diff命令,查看修改的内容:
git diff
git log 命令查看历史信息:
git reset --hard HEAD^ 将文件回退到上一个版本
注意:HEAD表示当前版本,则HEAD^表示上一个版本,那么上上版本就是HEAD^^。
又想回到刚刚的那个版本
git reset --hard commit_id
commit_id可以使用git log --pretty=oneline
如果仓库中有个文件是我们不想要的
git rm demo2.txt 并且删除后记得使用git commit命令提交
删除的是工作区的文件,后来发现删除错了,那么可以通过git checkout命令用版本库里的文件进行恢复:
git checkout -- demo2.txt
git restore <file>
当我们在工作区业务开发的时候, 假设不需要对3.txt文件改动,也不需要对4.txt文件删除了。那我们需要使用git restore命令进行操作。放弃在工作区的更改。
git restore --stage <文件>的方式。
推送 git remote add origin ssh秘钥
git push -u origin master
git push origin master
git clone 远程库的ssh或者是http地址也行
git clone git@github.com:JangYt/Vue.git
合并分支
创建dev分支
git checkout -b dev
#git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令
git branch dev
git checkout dev
git branch查看分支,会列出所有的分支,当前分支前面会添加一个星号。:
在master分支下使用git merge dev 合并
解决冲突
git brach -d dev 删除分支
命令解释: `git branch -d <分支名>`:删除一个名字为branchName的分支。如果该分支有提交未进行合并,则会删除失败。
命令解释: `git branch -D <分支名>`:强制删除一个名字为branchName 的分支。如果该分支有提交未进行合并,也会删除成功。
git reflog
命令功能: 可以查看所有分支的所有操作记录(包括commit和reset的操作).包括已经被删除的commit记录
git stash
命令解释:保护现场
建议(规范):在功能没有开发完毕前,不要做commit操作
规定(必须):在没有commit之前,不能checkout切换分支。(不在一个commit阶段)
git stash list
命令解释:显示git栈内的所有备份,可以利用这个列表来决定从那个地方恢复
commit规范
git commit -m "fix: 修改test.cls"
'feat', // 新功能
'upd', // 修改
'del', // 删除
'fix', // bug修复
'test', // 单元测试
'perf', // 性能优化
'docs', // 文档更新
'style', // 样式变动
'refactor', // 功能重构
'revert', // 回滚某个更早之前的提交
'package', // 创建包
idea使用
更新和冲突
打开仓库,修改一下代码,点击提交。
更新项目:
再次更改远程仓库的代码
update
团队合作
每个程序员负责一个包。
程序员只提交自己负责的包,程序员不要提交.idea文件夹,否则.idea文件夹中的xml会发生冲突,项目经理第一次可以提交.idea文件夹。
如果代码冲突了 先下载代码,手动解决冲突。
不能下载代码或不能上传代码,解决方法是重新clone项目
电脑同时配置github与公司内部使用的gitlab
https://blog.csdn.net/jueji1998/article/details/103815585
1.下载git
生成对应的gitlab和github的公 秘钥 ssh-keygen -t rsa -C “你的gitlab邮箱” -f ~/.ssh/id_rsa_gitlab ssh-keygen -t rsa -C “注册 github 账户的邮箱”
这四个文件分别对应gitlab和github的公私钥,分别将gitlab和github的公钥配置到github和你公司的gitlab的ssh上
2.在.ssh目录下创建一个config文件,写入以下内容
Host github.com
HostName github.com
User zhangyao
IdentityFile ~/.ssh/github_rsa
Host hcgit.hengchang6.com
HostName gitlab.com
User zhangyao
IdentityFile ~/.ssh/id_rsa
3.测试连接是否成功
ssh -T git@gitlab
ssh -T git@github.com
# Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.
# 出现上边这句,表示链接成功
git 冲突相关
#预防发生冲突的方法:在每次push前git pull一下,保证本地代码都是最新的。
#冲突解决方法:
第一种冲突:在Git push的时候提示冲突了。
这种解决方法可以使用 git stash
保存本地代码,然后拉取最新的远程分支代码
git fetch --all //只是下载远程内容,不做任何合并
git reset --hard origin/master //把HEAD指向刚下载的最新版本
再使用git stash apply应用最近存储,重新push即可。