git整理
Posted 六月June June
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git整理相关的知识,希望对你有一定的参考价值。
参考芋道源码
以下内容杂乱无章,没来得及整理,请参考芋道源码
目录
集中版本控制和分布式版本控制
集中版本控制(svn):所有版本集中放在中央服务器,而工作时,用的自己电脑,所有首先要从中央服务器得到最新版本然后工作,完成工作后,需要把自己做完的活push到中央服务器。svn必须联网才能工作,对网络带宽要求高。而且服务器损坏就丢失所有数据,当然可以定期备份。
分布式版本控制(git):没有中央服务器,每个人电脑就是一个完成的版本库,工作时不需要联网。可在本地查看所有版本历史,可离线在本地提交,联网时push到服务器上即可。由于每个用户都保存所有版本数据,只一个用户设备没问题就可以恢复所有数据,但是增加了本地存储空间的占用。
安装git并了解git配置
安装git,(注:卸载git:接反安装即可,卸载git相关环境变量,然后去控制面板卸载即可)
git官网安装git
淘宝镜像安装git Git-2.31.1-64.bit.exe
安装之后,右键就能看到多了两个git选项
Git Bash unix linux风格命令行
Git CMD windows风格命令行
Git CUI 图形界面git
Git配置,所有配置文件都保存在本地
C:\\Program Files\\Git\\etc\\gitconfig --system系统级 配置文件
C:\\Users\\zhush\\.gitconfig --global全局 配置文件
git命令操作配置文件:这里可以直接编辑文件,通过命令设置后会响应到这里
git config -l 查看git所有配置
git config --system --list 查看git系统配置
git config --global --list 查看git全局配置
配置全局文件,用户名和邮箱
git config --global user.name “zhangsan”
git config --global user.email “2352789111@qq.com”
git的相关概念:工作区、暂存区、本地仓库、远程仓库
git的工作流程:
工作目录添加修改文件 xxx.html
将需要进行版本管理的文件添加到暂存区 git add .
将暂存区文件提交到本地仓库 git commit -m "注释"
将本地仓库提交到远程仓库 git push origin master
因此git管理的文件有三种状态:已修改(modified)已暂存(staged)已提交(committed)
创建远程仓库
使用码云创建远程仓库
-- 登录注册码云,完善个人信息
-- 设置本机绑定SSH公钥,实现免密码登录
git命令生成公钥,生成完之后就会在C:\\Users\\zhush\\.ssh文件夹中产生两个文件
$ ssh-keygen -t rsa
-- 将公钥信息public key 添加到码云账户中
-- 使用码云创建远程仓库(注:工作中通常是运维人员使用GitLab搭建的远程仓库)
--将远程仓库克隆到本地
$ git clone git@gitee.com:zsrjune/gitdemo.git
克隆远程仓库到本地,并将本地仓库与远程仓库关联
从远程仓库拉取仓库,拉取成功后,就在当前文件夹下出现一个gitdemo仓库
git clone git@gitee.com:zsrjune/gitdemo.git
进入仓库 :cd gitdemo
----提交新建文件到远程仓库
新建(或修改)文件hello.txt
将改动文件(hello.txt)添加到暂存区:git add .
将暂存区提交到本地仓库:git commit -m “这是是提交的注释”
将本地仓库同步到远程仓库:git push -u origin master
----提交新建项目到远程仓库也与上同理
新建vue项目 vuedemo
git add .
git commit -m “提交vue项目”
git push -u origin master 提交master分支并与origin/master相关联
创建本地仓库关联远程仓库
git push -u origin master推送成功后看到远程仓库和本地仓库一模一样了
-u参数不但将master主分支内容推送,而且关联了远程仓库master,以后推送或者拉取就可以简化命令
从现在起,只要本地作了提交,就可以git push origin master 命令来推送主分支master到远程仓库了。
创建与合并分支:
git checkout -b dev 创建并切换分支
相当于git branch dev(创建分支) 和 git checkout dev(切换分支)两条命令的和写
git branch 查看分支
dev分支工作完成,git checkout master切换到master分支
在master分支上合并dev分支:git merge dev
合并完成后删除dev分支:git branch -d dev
如何解决冲突:
dev分支修改hello.txt中第三行为“1111”
master分支修改hello.txt中第三行为“2222”
在master上合并dev时就会报错:<<<和>>>标记出master分支和dev分支修改的内容
这时就要选择保留谁的代码了。
禁用fast forward模式:
在fast forward模式下,删除分支后会丢掉分支信息
-no-ff 禁用fast forward模式
合并dev分支 :git merge -no-ff -m “注释” dev
分支策略:master分支应该非常稳定用来发布新版本,一般情况下不允许在上面工作,工作一般情况下载新建dev分支上工作,工作完后,比如要发布新版本,或者dev分支代码稳定后可以合并到主分支master上来
Bug分支:
每个bug都可以通过一个临时分支来修复,修复完成后合并分支,然后将临时分支删除掉即可
git stash list 查看工作现场
git stash apply 恢复
git stash drop 删除stash内容
git stash pop 删除stash内容以及stash
多人协作:
首先试图用git pull origin branch-name推送自己的修改
如果推送失败,则因为远程分支比你本地更新早,需要git pull 抓取最新提交到本地试图合并
如果合并有冲突需要解决冲突并提交到本地仓库,再git push origin branch-name推送到远程仓库。
推送分支:
git push origin master 推送主分支
git push origin dev 推送dev分支
一般bug分支不需要推送,可以先合并到主分支后,再推送master分支
抓取分支:
将远程origin的dev分支到本地:git checkout -b dev origin/dev
然后在dev分支上做开发后推送dev分支到远程仓库:git push origin dev
如果发送了冲突导致推送失败,可以git pull把最新提交从origin/dev抓取下来,然后在本地合并,解决冲突再推送
git branch --set-upstream dev origin/dev 指定本地分支与远程origin/dev分支
git init
git add . 提交到暂存区
git commit -m “注释” 提交到本地仓库
git push -u origin master 提交远程仓库
git status 查看文件状态,是否有需要提交的
git log 查看操作信息(详细)
git log --pretty=online 查看操作信息(大概)
git reflog
Git reset --hard 6fcfc89 恢复到6fcfc89版本号
git reset --hard HEAD^ 回退到上1版本
git reset --hard HEAD~10 回退到上10版本
cat hello.txt 查看文件内容
git checkout --readme.txt 将未添加到暂存区的内容撤销,注意,如果没有--就是创建分支
以上是关于git整理的主要内容,如果未能解决你的问题,请参考以下文章