提交本地仓库
1.git init 初始化仓库
(设置用户名和邮箱)
进入根目录 cd ~
查看用户名和密码 cat .gitconfig
删除/修改用户名和密码 vim .gitconfig
退出 命令行 esc :wq :!q强制退出
git config --global user.email "234@qq.com"
git config --global user.name "name")
2.git status 查看状态
3.git add . 将工作区全部内容提交到暂存区
( git add 文件名 将单个文件上传提交到暂存区 )
(git rm --cached 文件名从暂存区删除,恢复到工作区)
4.git commit -m 'feat:本次添加说明'
5.git reflog 查看提交所有版本,回退版本前提(git log 提交历史记录JK切换滚动条--向上向下)
6.git reset --hard '哈希值' (回退到第几版本)
Linux命令
mkdir 创建文件夹
touch 创建文件
`rm -rf 文件或文件夹名` 删除指定的文件或文件夹
ls -a 查看当前目录内的文件列表,包含隐藏文件
cd 路径 进入指定的目录
vim 文件名 修改文件/如果没有该文件则是新建文件
git log 查看提交历史记录
git log --pretty=oneline 每条记录只显示一行
git log --oneline 更简约格式
git reset --hard 哈希值 前进后退版本
git reset --hard HEAD^ 后退版本 一个^代表后退一步
git reset --hard HEAD~n 后退版本 n代表后退几步
(rm -rf 删除文件后恢复文件:git reset --hard 哈希值)
git diff 文件名 工作区文件与暂存区文件进行对比
`git diff 要对比的本地仓库里文件的哈希值 文件名` 工作区文件与本地仓库文件进行对比
单个文件不想提交至暂存区使用:
touch .gitignore
vim .gitignore
输入要跳过的文件名
配置CZ步骤
1.全局安装`Commitizen`
cnpm install -g commitizen
2.安装并配置 `cz-customizable` 插件
1.cnpm i cz-customizable --save-dev
2.添加以下配置到 `package.json ` 中
"config": {
"commitizen": {
"path": "node_modules/cz-customizable"
}
}
3.项目根目录下创建 `.cz-config.js` 自定义提示文件
module.exports = {
// 可选类型
types: [
{ value: 'feat', name: 'feat: 新功能' },
{ value: 'fix', name: 'fix: 修复' },
{ value: 'docs', name: 'docs: 文档变更' },
{ value: 'style', name: 'style: 代码格式(不影响代码运行的变动)' },
{ value: 'refactor',name: 'refactor: 重构(既不是增加feature,也不是修复bug)'},
{ value: 'perf', name: 'perf: 性能优化' },
{ value: 'test', name: 'test: 增加测试' },
{ value: 'chore', name: 'chore: 构建过程或辅助工具的变动' },
{ value: 'revert', name: 'revert: 回退' },
{ value: 'build', name: 'build: 打包' }
],
// 消息步骤
messages: {
type: '请选择提交类型:',
customScope: '请输入修改范围(可选):',
subject: '请简要描述提交(必填):',
body: '请输入详细描述(可选):',
footer: '请输入要关闭的issue(可选):',
confirmCommit: '确认使用以上信息提交?(y/n/e/h)'
},
// 跳过问题
skipQuestions: ['body', 'footer'],
// subject文字长度默认是72
subjectLimit: 72
}
4.新建一个.gitignore文件,配置要跳过的文件(node_modules),保存退出
(若在命令框中操作,使用touch .gitignore新建文件,vim .gitignore配置要跳过的文件)
5.git add .
6.git cz选择 / 有些终端不支持 需要 winpty git cz
本地代码推送到远程仓库
使用https连接远程仓库
......
git add . 上传至暂存区
git commit -m '描述信息' 上传至本地仓库
git status 查看状态
进入github个人中心点击settings
点击右侧的 Developer settings
点击 Personal access tokens(个人访问令牌)
点击 Generate new token 创建一个新的令牌
设置 token 信息
得到生成的令牌
查看是否已有连接仓库 git remote -v (没有显示就是没有连接仓库,有提示代表已连接仓库)
若已有仓库可删除已连接仓库 git remote remove origin(仓库名)
复制远程仓库HTTPS地址
git remote add origin https://令牌号@github.com/MrsLvShu/testdemo.git
git remote -v 查看是否已建立连接
git push origin master 将本地代码上传至远程仓库
使用SSH连接远程仓库
......
git add . 上传至暂存区
git commit -m '描述信息' 上传至本地仓库
git status 查看状态
cd ~ 进入根目录
ls -a 查看是否存在.ssh文件,若存在,先删除rm -rf
ssh-keygen -t rsa -C “邮箱” 创建SSH密钥
cat .ssh/id_rsa.pub 查看SSH公钥
复制SSH公钥
进入github个人中心点击settings
点击右侧的 SSH and GPG keys
点击 New SSH Key 创建SSH密钥(将复制密钥粘贴)
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
SSH密钥配置过,后期无需再配置
查看是否已有连接仓库 git remote -v (没有显示就是没有连接仓库,有提示代表已连接仓库)
若已有仓库可删除已连接仓库 git remote remove origin(仓库名)
复制远程仓库SSH地址
git remote add origin (仓库)
git remote -v 查看是否已建立连接
git push origin master 将本地代码上传至远程仓库
将远程仓库的代码克隆本地
git clone 地址名
将远程仓库最新的代码拉到本地
前提是已经clone 代码 ,无需再次使用clone,
git pull origin master
另外一种将本地代码推送到远程仓库的方式
新建仓库
直接clone 仓库地址
直接操作
git add .
git commit -m '描述信息'
git push origin master
Git分支操作
-
查看分支
git branch -v
-
创建分支
git branch 分支名
-
创建分支并切换
git checkout -b 分支名
-
切换分支
git checkout 分支名
-
合并分支
git merge 分支名 b合并到a分支上: git checkout a 先切换至a分支 git merge b 将B分支合并到a分支上
-
删除分支
git branch -d 分支名
-
多人协同开发冲突问题
原因:
当多个人同一分支上, 操作了同一文件或者同一行代码,这个时候就会发生冲突
当多个人在不同分支上, 操作了同一文件或者同一行代码,这个时候就会发生冲突
解决:
手动解决, 删除特殊的符合以及冲突的代码 然后在重新提交就ok了
-
查看本地仓库和远程仓库是否建立连接
git remote -v
-
将本地仓库和远程仓库建立连接
git remote add 远程仓库地址别名 远程仓库地址 新建 git remote set-url 远程仓库地址别名 远程仓库地址 更新修改
-
删除本地仓库的远程仓库地址
git remote remove 远程仓库地址别名
-
将远程仓库代码克隆本地
git clone 远程仓库地址
-
将远程仓库最新代码拉到本地
git pull 远程仓库地址别名 分支名