热门标签 | 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



推荐阅读
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
  • gitcommit-m提交所有本地文件 ... [详细]
  • Git命令基础应用指南
    本指南详细介绍了Git命令的基础应用,包括如何使用`git clone`从远程服务器克隆仓库(例如:`git clone [url/path/repository]`)以及如何克隆本地仓库(例如:`git clone [local/path/repository]`)。此外,还提供了常见的Git操作技巧,帮助开发者高效管理代码版本。 ... [详细]
  • Git基础操作指南:掌握必备技能
    掌握 Git 基础操作是每个开发者必备的技能。本文详细介绍了 Git 的基本命令和使用方法,包括初始化仓库、配置用户信息、添加文件、提交更改以及查看版本历史等关键步骤。通过这些操作,读者可以快速上手并高效管理代码版本。例如,使用 `git config --global user.name` 和 `git config --global user.email` 来设置全局用户名和邮箱,确保每次提交时都能正确标识提交者信息。 ... [详细]
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
  • 六百字读懂
    译注:来自HackerSchool的MaryRoseCook实现了一个纯JavaScript(Node.js)写就的Git:Gitlet,包含了最主要的一些命令。这个项目一是为了了 ... [详细]
  • 前言之前一直把Git当做个人版本控制的工具使用,现在由于工作需要,需要多人协作维护文档,所以去简单了解了下Git多人协作的工作流程,发现还真的很多讲解的,而且大神也已经讲解得很清楚了,这里就做一个 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • Git核心命令全解析:掌握日常开发必备技能
    本文深入解析了 Git 的核心命令,帮助开发者掌握日常开发中的必备技能。从 `git init` 命令开始,介绍了如何将当前目录转变为 Git 可管理的仓库。接着详细讲解了 `git add` 命令的使用方法,包括如何将文件(如 `readme.txt`)添加到暂存区,以便在后续提交时进行版本控制。此外,还探讨了其他关键命令,如 `git commit` 和 `git push`,以确保代码变更能够安全地保存和同步到远程仓库。通过这些命令的综合应用,开发者可以更加高效地管理和协作项目。 ... [详细]
  • 在开发过程中,为了确保代码的实时保存,我们常常会对某个功能进行多次提交。然而,当功能趋于稳定时,将这些分散的提交记录合并为一次提交,可以提高代码仓库的整洁度和可维护性。本文将详细介绍如何使用 Git 巧妙地合并多次提交记录,帮助开发者简化历史记录管理。 ... [详细]
  • SSL 错误:目标主机名与备用证书主题名称不匹配
    在使用 `git clone` 命令时,常见的 SSL 错误表现为:无法访问指定的 HTTPS 地址(如 `https://ip_or_domain/xxxx.git`),原因是目标主机名与备用证书主题名称不匹配。这通常是因为服务器的 SSL 证书配置不正确或客户端的证书验证设置有问题。建议检查服务器的 SSL 证书配置,确保其包含正确的主机名,并确认客户端的证书信任库已更新。此外,可以通过临时禁用 SSL 验证来排查问题,但请注意这会降低安全性。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 前言: 网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个操作手册,希望对想搭建k8s环境的盆友有所帮 ... [详细]
  • 什么是git-lfsGithub对文件大小的限制如果你在命令行用gitpush50MB的文件,你会收到一个warning,但是你仍然可以正常push,但是100MB的时候就无法 ... [详细]
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社区 版权所有