git管理之代码上线、下线和版本控制

1.单机版git
2.github上建立远程仓库
3.克隆远程仓库
4.git分支管理

  • 本地分支管理
  • 远程分支管理

5.标签管理
6.git别名

一.单机上使用git

#安装git:
yum install -y git
mkdir /data/git 
cd /data/git
git init  //初始化

初始化之后,目录下面会生成文件:

drwxr-xr-x  7 root root 4096 Nov 21 14:04 .git //里面有一些配置文件

把代码发布到本地仓库:

echo "werwrw222" > 222.txt  //测试用的文件
#给代码文件做标记
git add 222.txt
#推送到仓库
git commit -m "add 222.txt"
#查看
git log  //从下往上是最新的,上面最新版本
#或者
 git log --pretty=oneline  //它会以最简约的方式查询

查看仓库状态:

git status  //显示缓存区的状态

回退版本:

#这里有两个版本
git log --pretty=oneline 
e866832b0a64b514434ac77f950312392a4a944d chanbe 111.txt
651630933e0f435c5818c526666da3eedda18fda add 111.txt
#回退到上一个
git reset --hard 651630933e0f435c5818c526666da3eedda18fda   //可以不用写全

假如回退错了,又想原来的了,可以:

#查看git 记录
git reflog
#还原
git reset --hard 651630933e0f43 

假如删除了代码文件,想还原只需要把仓库里的代码文件checkout,因为仓库里的并没有删除:

rm -f 111.txt 
git checkout -- 111.txt

怎么去除代码文件标记,撤出缓存区的更改:

git add 111.txt
git status
#撤出缓存区
git reset HEAD 111.txt

删除仓库文件:

git rm -f 111.txt
git commit -m "delete 111.txt"

恢复:

git reset --hard 标记

二.github上建立远程仓库

windows使用之前最好先绑定一下host,这样不会出现访问失败的问题:
在这里插入图片描述

首先到github创建一个账号,建立好了之后:
在这里插入图片描述
在这里插入图片描述
建立完成之后,建立公钥,用在服务器上ssh登入github远程仓库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在服务器上操作:

 ssh-keygen  //生成公钥

可以一直回车。
公钥存放的路径:
在这里插入图片描述
把里面的内容粘贴到github的key里面,sshkey完成。
进入到你最开始创建的项目里面:
在这里插入图片描述
服务器上执行这些命令之后,测试一下最终结果:

ssh -T [email protected]

如果没有报错就表示完成,如果出现ssh 22号端口访问失败的问题,可以:
在存放公钥的目录下,新建config文件:

vim /root/.ssh/config 
Host github.com
User jiangyouren  //User后面是自己的github的账号名,其他可以不变
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

测试一下,应该是可以了。

三.克隆远程仓库

在这里插入图片描述
在服务器上操作:

 git clone https://github.com/jiangyouren/ligenstat.git  //后面是自己想要克隆的链接

进入到克隆的目录:

 cd ligenstat/

在服务器上更改自己在github上的项目,就要先克隆下来,然后:

#假如你更改了代码文件
vim README.md
#标记,commit
git add README.md
git commit -m "change readme.md"
#上传到github
git push  //因为你是用密钥认证的,所以不用输入用户名,密码

此时,你在github上已经可以看到更改后的代码文件了。
如果之后又在github上更改了文件,服务器上怎么更新呢:
在这里插入图片描述
服务器上执行:

git pull

四.分支管理

git最重要的部分之一,用于协同编写大项目,各个分支互不影响,分支完成之后可以合并。

  • 本地分支管理
#分支查询
git branch  //查询结果中带有*号的分支就是当前所在的分支
#分支的创建
git branch aaa  //aaa是创建的分支名字
#切换分支
git checkout aaa  
注意:新创建的分支它默认会生成master已经存在的代码文件,各个分支代码文件互不影响

#分支的合并
#合并分支有一个原则,那就是要把最新的分支合并到旧的分支
#切换到目标分支下
git checkout master
#把aaa分支合并到master
git merge aaa

分支合并的冲突:
分支有互不相同的内容合并就会有冲突(a属于b或者b属于a不会)
模拟一下冲突:

#分支master和abc都包含文件222.txt
#两个分支都更改222.txt,更改内容不同
git checkout abc
echo "lsjls" >> 222.txt
git add 222.txt
git commit -m "change 222.txt"
echo "jffsslllll" >> 222.txt
git add 222.txt
git commit -m "change 222.txt"
#把abc分支合并到master
#切换到master分支
git merge abc
#结果,报错:
CONFLICT (content): Merge conflict in 222.txt

解决办法:

#合并之前先查看哪个版本是你想要的
cat 222.txt

在这里插入图片描述
如果abc是你想要的,你就把master改成和abc一样的,再合并。
如果master你是想要的,你就把abc改成master在合并。

删除分支:

git branch -d aaa  //删除分支aaa
  • 远程分支管理

项目中使用分支原则:

master分支非常重要,用来发布线上的代码,平时开发代码不在这个分支上。
创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并到master
开发人员则应该在dev的基础上再分支成个人分支,个人分支里面开发代码,然后合并到dev分支。

可以在github上创建分支:
在这里插入图片描述
克隆到服务器之后,注意克隆默认只能克隆master分支。

#查看远程分支
git ls-remote origin
#把其他分支克隆下来
git checkout -b dev origin/dev  //后面的是远程的分支,此时已经切换到dev分支下了

如果我们在分支dev下更新了代码

echo "jjjj333.txt" >> 333.txt
git add 333.txt
git commit -m "add 333.txt"
#推送到远程仓库
git push origin dev  //后面是指定远程分支分支
git push  //推送所有分支

假如我们本地又创建了一个远程没有的分支,怎么推送呢:

git branch dev2
git checkout dev2
echo "jjj44.txt" > 444.txt
git add 444.txt
git commit -m "add 444.txt"
git push origin dev2

此时github上已经有dev2了。

五.标签管理

其实就是给当前的版本做个标记,以便回退到此版本。

#查询标签
git tag  //按字母顺序排序
#新建标签,默认是以最新commit
git tag -a v1.4 -m 'version 1.4'
-m 标签描述 -a指定标签
#查看标签v1.4信息
git show v1.0

#也可以之间创建
git tag v1.0 //创建了标签v1.0

#针对历史commit打标签
git log --pretty=oneline
git tag v0.5 13dff263d5c  //后面是以前更改的commit信息

#删除标签
git tag -d v1.4
#删除远程标签
git push origin :refs/tags/v1.4

#推送指定标签到远程
git push origin v1.0

#推送所有标签
git push --tag origin 

在github上查看标签
在这里插入图片描述

六.别名设置

#设置别名

git config --global alias.ch checkout
#查看别名
git config --list |grep alias 
#取消别名
git config --global --unset alias.ch

配置文件:
/root/.gitconfig

发布了108 篇原创文章 · 获赞 26 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_37369726/article/details/103181539
今日推荐