git整理

Posted 六月June June

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git整理相关的知识,希望对你有一定的参考价值。

参考芋道源码

以下内容杂乱无章,没来得及整理,请参考芋道源码

目录

集中版本控制和分布式版本控制

安装git并了解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整理的主要内容,如果未能解决你的问题,请参考以下文章

git命令收集整理

Git常见命令整理

GIT系列——GIT常用命令整理

git命令整理备忘

git 命令整理

git 学习整理