热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Git和GitHub的基本操作

1.Git和GitHub的基本介绍1、什么是GIT?Git是一个免费、开源的版本控制软件2、什么是版本控制系统?版本控制是一种记录一个或若干个文件内容变

1.Git和GitHub的基本介绍

1、什么是GIT?

Git是一个免费、开源的版本控制软件

2、什么是版本控制系统?

版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统。

实现功能:记录文件的所有历史变化,并通过命令可以随时恢复到任何一个历史状态;实现了多人协作开发或修改

3、常见版本控制工具?

Git:现在使用率最广,也是最受欢迎的版本管理工具

Svn:较早的版本管理工具

4、 Github和Git是什么关系

Git是版本控制软件,服务于本地

Github是项目代码托管的平台,借助git来管理项目代码,实现远程操作

常见代码托管平台GitHub,码云,csdn code等。GitHub开源公开,如果想创建私有项目需要花钱购买;而码云不需要,可以创建个人私有空间,安全性较好

2.使用Git

2.1安装

官网下载,直接点击下一步下一步安装即可

2.2 阶段一上线代码

1.针对你的项目文件夹,右键--->点击Git Bash Here---->把git运行起来

2.初始化操作
  git init

3.提交邮箱,姓名
  git config --global user.email "you@example.com"
  git config -global ser.name "your name"

4.查看当前目录所有文件(文件显示红色)
  git status

5.文件上传到git
  git add . # 全部文件
  git templates/index.html #具体添加的文件

6.数据提交上线(文件显示白色)
  git commit -m "描述信息"

7.当我们的代码发生修改时,通过git status查看其状态会发现,变动部分都被红色标注出来。重复5-6步,提交我们改动的数据

8.查看版本日志,即提交记录
  git log

9.查看修改的版本号ID(前面的黄色部分即ID号)
  git reflog

10.通过ID回滚,回到改动之前的文件

  git reset --hard ID号

11.在执行log和reflog操作,查看状态

## 这些变化在git命令行中操作可能你感觉不到啥,你对着你的项目看,哪里动了看哪里,它会随着你的命令行发生相关的变化,不信你自己试试,当然我这穷逼用的windows是这样,自带这种特效,其他系统的电脑就不清楚了

Git管理的文件分为了两个区四个状态

工作区:当前开发程序所在目录称为工作区,即:工作开发都是在该目录,该区域的文件会有状态的变化且状态由git自动检测,如果程序中文件做任何操作(增、删、改),文件状态均会被检测到,可以使用 【git status】命令查看。

版本库:工作区检测到有文件发生变化,那么意味着较上一个版本之后对程序进行了修改,修改完成之后,可以当做下一版本进行提交,那么就是执行 【git add .】 将所有文件提交到暂存区,然后再执行【git commit -m '又一个版本'】提交到版本库的分支即可,之后可以使用【git log】命令查看版本记录。

2.3 阶段二项目延伸

  当我们的项目需要延伸功能,开发到一半时前面的某个部分出现bug,此时我们需要回溯到没开发前的代码,改完bug在提交,这时候我们有以下几种解决办法:

方案一:利用stash修复bug

  stash用于将工作区发生变化的所有文件临时存储在“某个地方”,将工作区还原当前版本未操作前的状态;

  stash还可以将临时存储在“某个地方”的文件再次拿回到工作区。

  在执行pop命令时,某些情况下,我们紧急修复的代码会和stash存储在“某个地方”的代码有重合部分,此时就会出现冲突,需要你手动解决冲突

stash相关命令作用:

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

 方案二:使用分支branch

  我们在编写程序的时候,绝对禁止使用单个master分支,必须在master上创建新的分支,在分支上进行操作

1.创建分支,相当于对master主线进行了拷贝

  git branch dev

2.查看总共有几条分支

  git branch

3.跳转到相应分支

  git checkout dev

4.当我们在分支dev上对bug修复成功后,需要将dev分支和master分支合并,现在需要转到master上在主线上对它合并,不过记得先对代码进行提交一下,在此处合并也可能出现冲突,自行手动解决

  git merge dev

5.删除dev分支

  git branch -d dev

6.如果在公司上遇到紧急修复的bug,我们可以再master上创建bug分支,在bug分支上进行修复,修复完毕后再合并到master并删除debug分支

2.4 异地管理操作项目

1.登录GitHub

2.点击new resporepository,创建个人仓库

3.获取代码仓库地址

4.现在我们可以通过地址将我们的代码提交到GitHub上进行托管

  git remote add origin https://github.com/LearningOnline/-.git    # 绑定

  git push origin master      # 推送master分支

  git push origin dev        # 推送dev分支

## 注意这里的origin就是一个名字,在你clone一个托管在Github上的代码库时,git为你默认创建的指向这个远程代码库的标签就是它

  通过remote -v,可以看到origin指向的是远程代码库

5.当我们想在另一个地方来继续编写代码的时候,从GitHub上进行克隆操作

方式一:登录GitHub,直接clone or download我们的文件

方式二:选择指定文件执行以下命令,克隆全部文件

  git clone https://github.com/LearningOnline/-.git

方式三:指定文件夹后(你要放入代码的文件夹),init初始化,再进行远程添加,最后通过pull命令拿到

  git remote add origin https://github.com/LearningOnline/-.git

  git pull origin master

ps:如果当前自己电脑存在公司的项目,但是在公司电脑上已经更新上传过(git add . /git commit -m "xxx"/git push origin dev),此时我们只需要执行方式三(git pull origin dev),进行局部推送即可。写完代码后在进行上传更新(git add . /git commit -m "xxx"/git push origin dev),方便回到公司接着操作,这样来回执行    

 6. 如果我们在公司写完代码,最后忘记push推送我们的代码,回到家pull拉代码时,很有可能产生冲突,我们采用第三种rebase操作,能够保持代码操作记录的整洁性

git pull orgin dev 等价于:
git fetch origin dev
git merge origin/dev 约等于(不分叉):
git fetch origin dev
git rebase origin/dev   

git操作详细操作指向说明

2.5 协同开发  

合作者模式(收费的):

  项目拥有者向新用户发起邀请

  为每个用户创建一个分支

  -master

  -dev

  ---

  ## 一般还会创建一个review分支,这个分支资深开发对大家提交的代码进行审阅

创建组织(免费):

  创建组织

  邀请成员(可以对成员设置权限)

2.6代码贡献,GitHub中为别人的开源项目找bug

  找到存在bug的项目,fork一下买这个项目就在自己仓库出现了

  从自己仓库获取代码,编辑并提交

  创建提交一个pull request,然后等待原作者回复即可

3.0 总结

git常用命令

# git init
初始化,当前所在的文件夹可以被管理且以后版本相关的数据都会存储到.git文件中
# git status
查看当前文件夹以及子目录中文件是否发生变化:内容修改/新增文件/删除,已经变化的文件会变成红色,已经add的文件会变成绿色
# git add .
给发生变化的文件(贴上一个标签)或 将发生变化的文件放到某个地方,只写一个句点符就代表把git status中红色的文件全部打上标签
# git commit -m
新增用户登录认证功能以及xxx功能将“绿色”文件添加到版本中
# git log
查看所有版本提交记录,可以获取版本号
# git reset --hard 版本号
将最新的版本回退到更早的版本
# git reflog
回退到之前版本后悔了,再更新到最新或者最新之前的版本
# git reset --hard 版本 回退

git stash中常用命令

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

git merge 和git rebase区别

merge:
会将不同分支的提交合并成一个新的节点,之前的提交分开显示,
注重历史信息、可以看出每个分支信息,基于时间点,遇到冲突,手动解决,再次提交
rebase:
将两个分支的提交结果融合成线性,不会产生新的节点;
注重开发过程,遇到冲突,手动解决,继续操作

3.1 其他 

gitlab说明:

  它是公司自己搭建的项目代码管理平台

git中 .gitignore文件的作用:

  一般来说每个Git项目中都需要一个“.gitignore”文件, 这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。

  实际项目中,很多文件都是不需要版本管理的,比如Python的.pyc文件和一些包含密码的配置文件等等。

 

 关于配置文件,以及用户凭证,版本问题等操作等点击这里

更多细节性问题点击这里

 

转:https://www.cnblogs.com/LearningOnline/articles/9320714.html



推荐阅读
  • 初始化初始化本地空版本库,仓库,英文名repositorymkdirtest&&cdtestgitinit克隆项目到本地gitclone远程同 ... [详细]
  • 双十一在家学用 Git
    对于所有的开发者来说,掌握一门代码版本控制系统都是必须的,无论是自己做项目,团队合作,工作中的合作,都离不开版 ... [详细]
  • 先记住几个专用名词,如下:Workspace:工作区IndexStage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个G ... [详细]
  • 起因之前,我写过一篇文章:在GitHub上fork项目后,如何与原仓库同步?图解全过程,介绍如何在自己for ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在使用TortoiseSVN的Repo-browser浏览SVN时出现的错误,以及解决方法。文章提到了卸载当前版本、安装较低版本、使用更下一层的路径等解决方案。同时指出该问题可能是客户端与SVN服务端不匹配造成的,且服务端无法升级更高的SVN版本。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • Java源代码安全审计(二):使用Fortify-sca工具进行maven项目安全审计
    本文介绍了使用Fortify-sca工具对maven项目进行安全审计的过程。作者通过对Fortify的研究和实践,记录了解决问题的学习过程。文章详细介绍了maven项目的处理流程,包括clean、build、Analyze和Report。在安装mvn后,作者遇到了一些错误,并通过Google和Stack Overflow等资源找到了解决方法。作者分享了将一段代码添加到pom.xml中的经验,并成功进行了mvn install。 ... [详细]
  • angular.element使用方法及总结
    2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
  • 修正我的GitHub commit 数据
    早晨上班,滴滴搭车里,我在掘金这个帖子看到大家晒自己的Github活跃记录,我也晒了下自己的记录。不过太少了。有遗漏的commits状况这也让我知道,自己觉得自己很忙的,实际上提交 ... [详细]
  • npminstall-Dbabelcorebabelpreset-envbabelplugin-transform-runtimebabelpolyfillbabel-loader ... [详细]
  • git向远程仓库提交遇到的各种坑
    **码云***gitinit初始化本地仓库gitinit*gitremoteaddorigingitgithub.com:xueqinngchennLocal-agent.git将 ... [详细]
  • 如何在vscode中使用GitLab我同广大码友们一样,好不容易赶上了个节假日,回到家一顿安排,可屁股还没坐热就接到线上紧急BUG需要修复 ... [详细]
  • 1.私有服务器搭建的环境,先clone下来了 ... [详细]
author-avatar
小甜甜小小郭
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有