1、下载git
2、安装git
3、因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识
git config --global user.name 'xgl'
git config --global user.email 'xgl@qq.com'
4、创建仓库
mkdir sleep
git init
5、添加文件
第一步:使用命令 git add readme.txt添加到暂存区里面去
git add readme.txt
git add * :添加所有文件
第二步:用命令 git commit告诉Git,把文件提交到仓库。
git commit -m "第一次提交
通过命令git status来查看是否还有文件未提交"
6、删除文件
rm 1.php 删除工作区的文件
git rm 1.php 删除git分支中的文件,还得使用git commit提交
7、版本回退
git log:查看版本提交日志
git log --pretty=oneline
git reset --hard HEAD 回退到上一个版本
git reset --hard 123213 回退到指定版本
8、工作区 暂存区 分支区的对比
通过三个命令理解
下面还有一个需要注意的git diff 命令的差异:
git diff 比较的是工作区和暂存区的差别
git diff --cached 比较的是暂存区和版本库的差别
git diff HEAD 可以查看工作区和版本库的差别
9、撤销修改
情况1:数据只存在工作区
git checkout -- readme.txt 丢弃工作区的修改内容
情况2:数据添加到了暂存区
先从版本中把暂存区清空,在使用情况1
git reset HEAD readme.txt
情况3:数据已经提交到暂存区 并commit到分支
可以直接使用版本回退
10:分支相关
git checkout -b dev 创建并切换到dev分支
git branch:查看所有分支,并且 当前分支会有*
git checkout mast:切换分支
git branch -d dev:删除分支,不能在当前分支删除当前分支
git merge dev,把dev合并到当前分支中,注意 如果有冲突,会产生一个 master|merging的临时分支,我们需要在这个临时分支中解决冲突后 然后在临时分支上执行:git add,git commit 后 会自动合并切换到当前分支
11、bug分支
使用场景:首先从master 新建一个dev分支,我们在dev分支上面开发,但是功能还没有开发完成,突然在生产环境发现一个重大bug,需要马上解决,如果我们这个时候直接切换到主分支修改,会把我们在dev分支上修改的 还没有提交的 带过去,这是在创建bug分支 也会带过去,
处理办法是:我们现在dev分支上使用 git stash,把在当前dev分支上的修改 打包存储起来,保证我们切换到master时不会带过去,然后在切换到master分支,在使用git checkout -b mastr-bug的临时分支 在在bug分支
上修改 提交 和并到master分支,在处理完bug后,在切换到dev分支 使用git stash pop,解包 在继续开发
12、github远程仓库
一、创建ssh key
ssh-keygen -t rsa -C "350833806@qq.com"
把公钥保存到远程仓库网站上面
二、添加远程仓库
把本地仓库和远程仓库关联:git remote add origin https://github.com/350833806/newwind.git
把本地mster仓库内容推送到远程仓库:git push -u origin master
把本地dev仓库内容推送到远程仓库:git push -u origin dev
把本地分支提交到远程分支对应得魔法分支上去:git push origin head:refs/for/develop
三、克隆远程仓库到本地
克隆远程仓库到本地:git clone git@github.com:350833806/newwind.git
注意:clone在克隆的时候默认是把当前仓库的所有分支都克隆下来
本地新建分支 并关联远程分支
git checkout -b dev origin/dev
13、多人操作分支
git remote -v 查看远程库的信息,可以知道是否有获取和推送到远程库的 权限
git pull:拉取跟新
14、eclipse整合git
配置用户user 默认读取用户目录下的.gitconfig
配置并生成公钥 默认读取用户目录下面的 .ssh
在gitee上面创建空的仓库
分享项目,ji
----------------------------------
自定义版本git服务器
1、新增加git用户
user add git
passwd git 123456
2、在/etc/.ssh/sshd_config查看ssh授权文件位置
3、在git用户的家目录下的.ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
4、在git clone拉取代码的时候 就可以不用 密码来拉取了,如果没有设置 就需要使用git用户的密码来拉取
--------------------------
jenkins 默认用户使用的jenkins 导致git拉取代码失败
图灵学院
======================
git init sleep:创建一个sleep的仓库
git status:查看文件状态
git add .:把文件加入到暂存取 local cache
git add -A:添加全部文件到暂存区
git add . 提交所有文件到暂存区 git add 1.txt 只提交1.txt到暂存区
git rm --cached 2.txt -r:把2.txt从暂存区删除
git commit :把暂存区的所有文件 提交到本地仓库
git commit 1.txt :只把暂存区的 1.txt 提交到本地仓库
git remote add origin https://gitee.com/201505131330/sleep.git 本地仓库 关联远程仓库,可以关联多个远程仓库 ,注意其中 origin是名称
git remote add origin2 git@gitee.com:201505131330/sleep2.git 本地仓库 关联远程仓库,可以关联多个远程仓库 ,注意其中 origin是名称
git remote:查看远程仓库
git remote remove origin :删除和远程仓库关联
git clone https://gitee.com/201505131330/sleep.git sleep1 :克隆远程仓库到本地 并命名为sleep1
git push origin:推送到远程仓库 origin
git branch :查看仓库中所有本地分支:
git branch -a:查看所有分支(包括本地+远程)
git branch -av:查看所有分支的详细信息(包括本地+远程))
git branch -avv:查看所有分支的详细信息(包括本地+远程)) 和本地远程的关联信息
git checkout master:切换到master分支
创建分支方式:
1、基于当前分支创建新分支
git branch 新分支名称
2、基于远程分支创建新分支
3、基于一个提交创建新分支
4、基于tag创建新分支
删除分支:
git branch -d 分支名称:
tag 管理:tag是只读的
git tag:查看所有tag
git tag tag名称 分支名称:基于一个分支创建tag
日志:
git log:查看当前分支所有日志提交
git log --oneline:查看当前分支 一行的形式查看日志
git log master:查看master分支的日志提交
git log master..dev 查看dev有哪些提交没有到master
git log dev..master 查看master有哪些提交没有到dev
git log --pretty=format:'%h %s' --graph:以图的方式查看提交
合并分支:
git merge master,把master分支合并到当前分支
git show:查看当前分支 最后一次提交的内容
git show master:查看master分支最后一次提交的内容
===================
服务的搭建
一、local协议
演示:在d盘创建一个gitdemo的文件
创建一个裸项目 名称为 gitdemo.git, git init --bare gitdemo.git
然后共享 d:gitdemo目录
客户端克隆仓库:git clone /d/gitdemo/gitdemo.git
二、ssh协议
演示
创建一个裸仓库
git init --bare mysleep.git
克隆仓库
git clone root@152.32.226.250:/demogit/mysleep.git
---------------------
工作中遇到问题一:
合并代码后 拉下来后和远程分支代码不一致,采用git强行覆盖本地分支,让远程分支和本地分支一致
git强制覆盖:
git fetch --all
git reset --hard origin/master
git pull
===版本回滚
https://www.knowledgedict.com/tutorial/git-rollback.html
git log --oneline
第一步:本地回退
本地回退到置顶版本:git reset --hard <commit_id>
本地回退到上一个版本:git reset --hard HEAD^ 注意HEAD表示当前版本 HEAD^表示上一个版本
第二步:将本地回滚的代码推送到远程仓库
git push -f
浙公网安备 33010602011771号