Git

本文详细介绍了Git,从集中式版本控制系统 SVN 的背景引入,讲解了Git的分布式特性,包括三种状态(已修改、已暂存、已提交)。阐述了Git的安装、配置、常用命令以及操作流程,如添加、提交、推送、拉取、合并等。同时提到了分支管理、解决合并冲突的方法,以及高级操作如revert、reset、cherry-pick和rebase,还提及了Git的hooks和工作流。
摘要由CSDN通过智能技术生成

Git-分布式版本控制系统
. 背景介绍
1.集中式-SVN
(版本,修改信息保存在中央服务器,问题:单点故障;)
 只保存两个版本变化
2.分布式-Git
(整个工程特定时刻完整拷贝都down到本地)
保存每个版本完整部分,所有操作都可以本地完成,因为本地仓库。
. Git三种状态(类似于form表单)
已修改modifiedadd)(工作区)以暂存stagedcommit)(暂存区)—已提交commited(本地仓库)-远程仓库
开发流程:
创建仓库(从远程仓库克隆)-创建并切换到特性分支-创建/修改文件-提交工作区文件到暂存区-提交暂存区文件到本地仓库
.安装和免密码登陆
1.配置用户名和密码
两种连接方式:SSHHTTP
ssh-keygen   产生ssh公钥和私钥  
网页上profile settings添加
2.git clone 远程仓库地址    本地名字
Vim.gitignore可以添加想忽略上传到git的文件或者文件夹
四常用命令
init clone remote status log reflog config
add commit fetch pull push rm stash
Branch checkout merge diff reset revert
网页:gitlab.corp.qunar.com    点击菜单栏+号可以创建远程仓库
1.
git init 初始化
git remote add origin 远程仓库地址     将远程仓库与git init本地创建仓库关联
git remote -v
git remote —help可删除,可重命名。。。
git clone 克隆远程 
2.
git status 显示工作区状态,经常使用
git add 文件名  可以将文件进行跟踪
git reset HEAD 文件名  可以撤回暂存区
git commit -m ’输入提交的记录‘
git push 推到远程库
git log只记录commit操作,与远程仓库同步,查看分支提交历史
git reflog 不会与远程同步,记录本地所有操作
3.
git config 修改配置信息
git config   - -add user.name 新的名字
4.

git diff 显示不同提交,不同工作区域,不同分支之间的差别(默认显示工作区和暂存区区别)

git diff --staged/cached 暂存区和本地仓库区别

git branch -a 查看远程分支

git branch 显示存在分支

git diff 分支名 分支名   对比俩分支之间区别

git diff hash码前缀 hash码前缀  对比俩文件之间区别

git checkout 分支名  切换到某个分支

cat 文件名  查看文件信息

git add 工作区提交到暂存区

git commit 暂存区提交到本地仓库

git commit -am “描述文字”

git push 将本地仓库内容推送到远程仓库

git push -u origin branch2 指定推送到远程哪个分支下

5.

git pull 拉取远程仓库到本地仓库并合并到本地分支(git fetch +git merge)

git fetch 只是拉取,不会影响本地分支文件

git merge origin/branch2  可以合并分支,对本地有影响了

先要切换到需要操作的分支才可以操作,git checkout 分支名  git merge branch2 将branch2文件与checkout切换到分支文件合并,该merge以后操作需要push到远程仓库

git merge冲突

先push冲突后需要pull,然后比较文件区别,手动修改,HEAD本地分支文件  <<<   === 远程分支文件 <<,需要重新add,commit,push

git merge --abort 将本次合并取消

6.

git branch 显示所有分支,带*为当前位于分支

git branch 分支名  新建分支

git branch -d 分支名 删除某一分支 ,更谨慎

git branch -D 分支名 强制删除

git branch -v 查看分支详细信息(分支名,最近一次提交版本号以及该次提交的描述信息)

git checkout 切换分支

git checkout -b 分支名 创建分支并切换

git checkout --文件名  可以将文件还原成本地仓库的样子

git checkout 版本号 文件名  将文件还原回某一版本状态下   commit之间版本

git checkout HEAD 文件名  最近一次提交

git checkout HEAD~ 文件名

git checkout HEAD~10 文件名

7.

git reset 重置HEAD到指定状态

git reset --mixed(默认) HEAD~ 将本地仓库上一个版本拷贝到暂存区

git reset --hard HEAD~   将本地仓库上一版本拷贝到暂存区和工作区

git reset --soft HEAD~  将HEAD指针指向上一版本,并不会进行拷贝

8.

git revert 版本号  撤销某次提交  revert操作被当作一次单独的提交保存,也就是提供hash数值

git reset --hard 版本号  会将这次提交之后所有操作删除,get log 提交历史都会将这些记录删除,不可逆

9.

git cherry-pick commitID 用于把某次提交的内容合并到当前分支

git log 找到 commitID 切换到master分支 git cherry-pick commitID

git cherry-pick continue  完成一次cherry-pick  

10.

git rebase用于把一个分支的修改合并到当前分支

与git merge 分支区别   产生新的merge提交  提交历史是分叉合并相交的过程

git rebase 找到合并分支的祖先节点,线性

git rebase -i master(分支名)   交互式提交方法

git rebase --continue完成一次操作 

git log --graph --online可以看到提交历史   

11.

git hooks

git 工作流

推荐书籍:pro git




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值