20191223笔记

强颜欢笑 提交于 2019-12-24 03:06:27

22.5/22.6 单机上使用git
22.7 建立远程仓库
22.8 克隆远程仓库
22.9 分支管理

一、单机上使用git

yum install -y git

mkdir /data/gitroot

cd /data/gitroot

git init //初始化仓库

echo -e “123\naaa\n456\nbbb” > 1.txt //创建一个新文件

git add 1.txt//把1.txt添加到仓库

git commit -m “add new file 1.txt” //add完了必须要commit才算真正把文件提交到git仓库里

再次更改1.txt

git status //查看当前仓库中的状态,比如是否有改动的文件

git diff 1.txt //可以对比1.txt本次修改了什么内容,相比较仓库里面的版本

版本回退

多更改几次1.txt,然后add,commit

git log//查看所有提交记录

git log --pretty=oneline//一行显示

git reset --hard f7c8e9//回退版本,其中后面跟的字符串是简写

撤销修改

rm -f 1.txt//不小心删除了1.txt

git checkout – 1.txt//恢复1.txt

如果1.txt文件修改,add后但没有commit,再想回退到上一次提交的状态,可以使用git reset HEAD 1.txt,再执行git checkout – 1.txt

git reflog //查看所有历史版本

删除文件

echo -e “11111111111\n2222222222” > 2.txt

git rm 2.txt

git commit -m “rm 2.txt”

二、建立远程仓库

首先到 https://github.com 注册一个账号,创建自己的git,点repositories 再点new

名字自定义,比如叫studygit 选择public 点 create repository

添加key:右上角点自己头像,选择settings,左侧选择SSH and GPG keys

左侧点New SSH key,把linux机器上的~/.ssh/id_rsa.pub内容粘贴到这里

把本地仓库推送到远程仓库 git remote add origin git@github.com:aminglinux/studygit.git //这一步是在远程创建一个新的仓库studygit,名字尽量和本地的一致

git push -u origin master //然后把本地的studygit仓库推送到远程的studygit
下一次再推送,就可以直接 git push

三、克隆远程仓库

cd /home

git clone git@github.com:aminglinux/lanmp.git

它提示,会在当前目录下初始化一个仓库,并创建一个.git的目录,如下

Initialized empty Git repository in /home/lanmp/.

git/完成后,ls可以看到一个lanmp的目录

cd lanmp

vi lanmp.sh 编辑一下文件,然后提交

git add lanmp.sh

git commit -m “sdlfasdf”

然后再推送到远程服务端

git push

四、分支管理

git branch //查看分支

git branch aming //创建分支

git checkout aming //切换到了aming分支下

再用git branch查看,会看到有两个分支master和aming,当前使用的分支前面会有一个*在aming分支下 ,编辑2.txt,并提交到新分支

echo “askdfjlksadjflk” > 2.txt

git add 2.txt

git commit -m “laksjdflksjdklfj”

切换回master分支

git checkout master //此时cat 2.txt发现并没有更改内容

分支的合并
git checkout master //合并分支之前,先切换到目标分支

git merge aming //把aming分支合并到了master

如果master分支和aming分支都对2.txt进行了编辑,当合并时会提示冲突,需要先解决冲突才可以继续合并。

解决冲突的方法是在master分支下,编辑2.txt,改为aming分支里面2.txt的内容。 然后提交2.txt,再合并aming分支。

但是这样有一个问题,万一master分支更改的内容是我们想要的呢? 可以编辑2.txt内容,改为想要的,然后提交。切换到aming分支,然后合并master分支到aming分支即可(倒着合并)。合并分支有一个原则,那就是要把最新的分支合并到旧的分支。也就是说merge后面跟的分支名字一定是最新的分支。

git branch -d aming //删除分支

如果分支没有合并,删除之前会提示,那就不合并,强制删除

git branch -D aming

使用分支的原则
对于分支的应用,建议大家以这样的原则来:

master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上。

创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并到master

开发人员应该在dev的基础上再分支成个人分支,个人分支(在自己pc上)里面开发代码,然后合并到dev分支
在这里插入图片描述
dev分支合并bob分支的命令是:

git checkout dev //先切换到dev分支,然后

git merge bob

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!