git和github(代码片段)

longyunfeigu longyunfeigu     2022-12-18     446

关键词:

了解

git是一个版本管理的软件,这个软件可以通过可视化的客户端来使用,也可以通过这个软件配套的命令来使用。
github是一个代码托管平台,从本质上来说,git和github没有任何关系,但是基本上很多代码托管平台可以通过git的语法来管理

先把目录管理起来

学习git的第一步是先把我们创建的程序目录管理起来。

初始化

git init     -- 会在当前目录创建一个隐藏的.git文件夹,这个文件夹不可以删除,git的使用全指望它
git status    -- 查看当前目录所有文件状态
git add .     -- 把红色的变绿色
git commit -m '第一次提交'     -- 把绿色变成透明色,第一次使用commit相当于把所有文件又拷贝一份放到别地

技术分享图片

更改目录文件

初始化后更改目录文件内容,如templates/index.html文件,原先是
技术分享图片
现在是
技术分享图片

执行下面操作

git status      -- 发现index.html标记为红色
git add .
git commit -m '新增linux'

然后再修改内容,如下
技术分享图片

执行下面操作

git status      -- 发现index.html标记为红色
git add .
git commit -m '新增java'

现在第一个问题来了,想回到新增java之前的版本,如下操作
技术分享图片

内容回到
技术分享图片

第二个问题,又想回到有java的版本,执行
技术分享图片

此时发现git log中没有新增java的版本,因为默认git log查看的是当前版本及之前的版本,这时候需要用到git reflog
技术分享图片

这时内容变为
技术分享图片

第三个问题,如果我修改了index.html文件,但是没有add,或者add之后没有commit,那想回到修改之前的状态,参考下面图例
技术分享图片

代码上线之后出bug解决办法之stash

先回到初始状态
技术分享图片

这个代码已经在线上运行了,紧接着开发新功能linux,开发到一半
技术分享图片

这时候php代码需要修改,如果此时commit之后再去修改,那么linux的半残品就会被用户使用。所以应该先把新增的代码保存到一个地方,去修改php的bug,修改完成之后再把新增的linux的一般代码拿过来
先执行git stash此时内容如下
技术分享图片
修改bug如下
技术分享图片
重复add和commit的操作
技术分享图片
通过 git stash pop 把新增的linux内容拿回来,因为显式地修改了<li>php</li>这一行的代码,有stash储存的这一行发生冲突.如果新增或删除基本就不会出现冲突,其实出现冲突也不要紧,手动更改冲突并add和commit即可
技术分享图片

stash相关常用命令:
git stash 将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
git stash list 查看“某个地方”存储的所有记录
git stash clear 清空“某个地方”
git stash pop 将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
git stash apply 编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
git stash drop 编号,删除指定编号的记录

代码上线之后出bug解决办法之branch

看两幅图
技术分享图片
技术分享图片

在平常的开发中,一般master分支不做改动,仅仅用来合并其他分支的代码,要想新增功能或者修改bug需要创建其他分支,开发完毕或者bug修改完成之后删除相应分支即可。分支的好处是可以多个人并行开发,然后再合并到master分支。先让一切回归初始状态
技术分享图片
创建dev分支并新开发linux功能,开发到一半,此时内容为

git branch dev
git checkout dev
git add .
git commit -m 'linux开发到一半'

技术分享图片
这时候php出现bug了,要修改bug。创建bug分支修改bug,注意:需要在master分支去创建bug分支,这样bug分支拷贝的就是master里的内容,如果在已经开发的dev分支去创建bug分支,那么bug分支拷贝的就是dev分支的内容
技术分享图片
切换到master分支去合并
技术分享图片
此时master内容为
技术分享图片
然后切换到dev分支继续开发linux,开发完成合并到master
技术分享图片
技术分享图片
此时文件内容为
技术分享图片

注意:git merge 时也可能会出现冲突,解决冲突的方式上述stash相同,即:找到冲突文件,手动修改冲突并提交,此处不再敖述。

branch相关常用命令:
git branch 分支名称 创建分支
git checkout 分支名称 切换分支
git branch -m 分支名称 创建并切换到指定分支
git branch 查看所有分支
git branch -D 分支名称 删除分支
git merge 分支名称 将指定分支合并到当前分支,一般是切换到主分支再合并其他分支

github托管

单人开发

单人开发,可能公司和家里都有电脑可以开发,每次把代码进行来回拷贝是一件麻烦事,所以考虑把代码放在一个第三方平台,通过这个第三方平台做代码寄存中转站。
去github注册一个账号,然后创建一个repository,其实就可以理解为放代码的文件夹,创建完成之后里面是空内容,但是有一些提示信息
技术分享图片
技术分享图片

git remote add origin https://github.com/longyunfeigu/nj.git
git push -u origin master
git branch dev    -- 创建dev开发分支并把dev推送到github
 git checkout dev
git push origin dev

此时github具有两个分支
技术分享图片

回到家,打开电脑,创建空文件夹
技术分享图片
技术分享图片
技术分享图片
在家开发功能之后add commit之后还有一步操作git push origin dev.回到公司第一步是切换到dev分支并把家里开发的代码拉下来`git pull origin dev‘,然后继续开发。
现在问题来了,如果在家新增了一个py的代码没有push到github该咋办?回到公司,先pull内容之后,继续新增一个py文件
技术分享图片
技术分享图片
回到家之后第一件事是拉代码,此时合并会出现下面问题
技术分享图片
技术分享图片

git pull origin dev的操作相当于两部分git fetch origin devgit merge origin/dev,这种情况会出现分叉,如果使用git fetch origin devgit rebase origin/dev就不会出现这种分叉情况
技术分享图片
技术分享图片

git和github简单教程(代码片段)

 原文链接:Git和Github简单教程网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上。这篇文章主要的目标是用较少的时间... 查看详情

mac配置git和github的使用(代码片段)

Mac自动安装了git,终端输入git命令进行查看,如果没有自行下载git配置git1、设置username和emailgitconfig--globaluser.name"github的名字--xxx"gitconfig--globaluser.email"注册GitHub的email---xxx@qq.com"2、通过终端命令来创建sshk 查看详情

git和github快速入门(代码片段)

Git入门简介Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的分布式版本控制系统。工具准备工具Git下载地址:https://git-scm.comGit配置配置的内容主要是:用户名和邮箱gitconfig--global--adduser.name<用户名>gitconfig-g... 查看详情

github第一章git和github的基本操作(代码片段)

一、了解Git和Github1、什么是GIT?Git是一个免费、开源的版本控制软件2、什么是版本控制系统?版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统。系统具体功能    记录文件的所有历... 查看详情

windows下git和github的使用图文详细教程(代码片段)

这里介绍windows下的git和GitHub使用。linux下git和github搭建使用教程参考:https://blog.csdn.net/weixin_52270081/article/details/1191407241、注册gihub账号github官网:https://github.com/自行创建即可。登录,createrepository 查看详情

git和github安装及使用(windows)(代码片段)

...要犹豫,不要迟疑,一直Next>就行了  三、git与github的关联     1.首先去github官网注册账户。下面是官网地址    &nbs 查看详情

git和github的基本操作(代码片段)

Git和Github的基本操作一、了解Git和Github1、什么是GIT?Git是一个免费、开源的版本控制软件2、什么是版本控制系统?版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统。系统具体功能   ... 查看详情

git操作命令和github使用(代码片段)

git代码协同管理工具代码管理工具作用*防止代码丢失,做备份*代码版本的管理,可以进行多个节点的备份,在多个版本之间跳跃*可以方便的将代码在多人之间进行共享传输*多人开发时有各种模式可以方便代码管理什么是gitgit... 查看详情

linux下git和github搭建使用教程(代码片段)

一:linux下git和github搭建1、注册gihub账号:github官网:https://github.com/自行创建即可。登录,createrepository新建仓库一个测试库test,创建完成。2、linux安装git环境yum-yinstallgit3、生成sshkey密钥ssh-keygen命令生成密钥&... 查看详情

git/github第一次提交和再次添加文件(代码片段)

文章目录git提交指令git提交指令gitinitgitadd.#将当前文件添加到.git文件中gitcommit-m"firstcommit"gitbranch-Mmaingitremoteaddoriginhttps://github.com/jucway/java-UDP-.gitgitpush-uoriginmain添加文件将之前的仓库pull下来之后合并之后在提交gitp 查看详情

git与github学习git的安装和使用(代码片段)

文章目录1)什么是Git?1.1Git简史1.2Git的优势2)Git的安装3)Git的结构3.1本地库3.2Git与代码托管中心3.3本地库与远程库3.3.1团队内部协作3.3.2跨团队协作4)Git常见操作4.1本地库初始化4.2设置签名4.3基本操作4.3.1状... 查看详情

git与github学习git的安装和使用(代码片段)

文章目录1)什么是Git?1.1Git简史1.2Git的优势2)Git的安装3)Git的结构3.1本地库3.2Git与代码托管中心3.3本地库与远程库3.3.1团队内部协作3.3.2跨团队协作4)Git常见操作4.1本地库初始化4.2设置签名4.3基本操作4.3.1状... 查看详情

在linuxubuntu中使用git连接到github(附代码和截图)(代码片段)

配置Step1首先查看Git的版本,确认是否存在 #查看当前Git版本┌──(kali㉿kali)-[~]└─$gitversiongitversion2.30.0如果没有安装,使用以下代码#Ubuntu安装Git┌──(kali㉿kali)-[~]└─$sudoapt-getinstallgit[sudo]passwordforkali:kaliReadingpack 查看详情

git同步源码到gitee和github(代码片段)

如何把我们的源码同步到gitee或github远程仓库中同步方式分以下几种: 1、命令同步  先查看下我们是否有远程仓库:gitremote-v如有就要删除远程仓库或是同命令覆盖,如全新安装就不需要!删除已关联的名为origin的远程... 查看详情

git的使用(代码片段)

git的使用git和github的区别Git是一种方法。而GitHub只是使用这种方法的一个代码仓库,就是git是操作的,GitHub是个网址初始化git仓储新建一个项目project,点进目录右击选择gitbashgitinit#初始化仓库,这个git对我们项目的代码进行备... 查看详情

原来git及github是这样的(代码片段)

Git及GitHubreset命令的三个参数hard和soft以及mixed的对比删除文件并找回比较文件分支管理Git基本原理--哈希Git保存版本的机制GitHub创建github账号创建一个github公共仓库不勾选readme创建仓库,本地链接远程仓库创建远程库地址别名推送... 查看详情

github(代码片段)

GitHubGitHub是最大的Git版本库托管商,是成千上万的开发者和项目能够合作进行的中心。大部分Git版本库都托管在GitHub,很多开源项目使用GitHub实现Git托管、问题追踪、代码审查以及其它事情。所以,尽管这不是Git开源项目的直接... 查看详情

git/github运用(代码片段)

https://www.cnblogs.com/yydcdut/p/3898223.html了解git和svn很久了,但是一直没有拿来做过版本控制管理,虽然svn有用到过,但是觉得还是运用git的比较多吧,尤其github。Git术语               查看详情