GIT的基本使用及应用场景
一、什么是GIT?
Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。
GitHub、GitCafe、BitBucket和GitLab等是基于Git版本控制的远程文件托管平台。
使用场景:
- 无远程:在本地 .git 文件夹内维护历时文件
- 有远程:在本地 .git 文件夹内维护历时文件,同时也将历时文件托管在远程仓库
PS:
集中式:远程服务器保存所有版本,用户客户端有某个版本
分布式:远程服务器保存所有版本,用户客户端有所有版本
二、安装GIT
PS: 注册GitHub、GitCafe、BitBucket和GitLab等账户,以便于将文件托管在远程。
三、GIT的相关命令
git init 初始化 生成 .git 文件,用于保存git相关所有信息,如:每个版本 git status 查看状态 git add 文件名或. '.'表示工作区被修改的所有内容 添加到暂存区。 git commit -m '对修改内容的描述信息' 从暂存区提交到分支。 配置用户信息:
git config --local user.name '用户名' git config --local user.email '邮箱地址' git ls-tree head 查看版本中所有文件 git ls-files -s 查看暂存区和分支中所有文件 git log 查看已生效的操作日志 git reflog 查看所有日志 git reset --hard 后接log里的指定随机字符串 回滚到指定位置 git reset --mix 后接reflog日志里开头的前7位 再回滚到之前指定的位置 git checkout 文件名 切换到指定文件 git stash 将当前已经做过的修改,保存到一个临时地方 git stash pop 临时地方内容重新放回工作区,恢复并删除最近一次保存的内容
出现冲突,手动解决:
"""
<<<<<<< Updated upstream
之前的代码1
之前的代码2
=======
之前的代码1
之前的代码2
开发直播功能到一半
>>>>>>> Stashed changes
手动解决结果: 之前的代码1
之前的代码2
开发直播功能到一半 """
git stash apply ‘名称’ 恢复指定名称的内容 git stash drop ‘名称’ 删除指定名称的内容 git stash list 查看所有临时空间里的所有内容 git stash clean 清空临时空间里的全部内容 master:只保留线上版本 dev: 保存所有开发版本 git branch dev 创建分支(会copy当前分支,注意当前分支的位置) git checkout dev 进入dev分支 git checkout master 切换到master分支 git merge dev 合并dev分支,注意必须在master分支上合并 git branch -d dev 删除dev分支
GIT 常用命令
git remote add origin https://github.com/xxx/xxx.git 添加远程连接并取别名 origin git push origin master 将本地master分支推送至远程仓库 git clone https://github.com/xxx/xxx.git 从远程仓库克隆到本地目录
里面有config文件,自动配置连接地址 git branch dev origin/dev 克隆后只有master分支,同步其他分支 git fetch origin dev 从远程仓库获取最新内容到本地dev分支 git pull origin dev 从远程仓库获取最新内容到本地dev分支的工作区里的原内容区 “劲儿大”
GitHub 常用命令
详情见图:
分支合并

命令详解

四、fork
fork,就是别人有一个开源项目,你发现里面有bug,可以fork别人的项目,进行修改。说直白一点,就是可以克隆一份到本地。
当你下载到本地,进行修改完成以后,你push到你自己的GitHub,然后你希望这个项目的开发者,采纳你修复的bug。你可以通过new pull request这个按钮向开发者发送你的描述信息。开发者认同你的代码的话,就有可能合并你的代码了。
五、应用场景
开发新功能共有两种方式:
- stash
- 分布式
未完待续...
六、其他
1、关于登录
在连接GitHub的时候,是需要登录的,登录验证有两种方式:一、https://xxx.com 通过用户名和密码的方式;二、通过SSH连接,我们在git命令行利用ssh-keygen.exe来生成公钥和私钥,公钥放在id_rsa.pub里面。拷贝里面的字符串,放在GitHub上个人设置里面有SSH and GPG keys里给设置上就齐活了。下次只要是SSH连接就不用管登录验证的问题了,公钥和私钥会自动匹配验证。
2、忽略文件
我们知道pycharm在生成新的project的时候,都会生成一个.pyc后缀结尾的文件,而这个文件基本上没什么用,所以,我们在文件上传的时候,就可以过滤掉一些没用的文件,怎么过滤呢,我们在git命令行vim .gitignore 进入后,在这个里面添加上我们需要过滤掉的文件名,如:*.pyc a.py 等,这样在执行git status的时候,就会自动过滤掉文件里匹配的相关文件了。再文件上传的时候,就不会上传上去了,就完成了忽略文件的作用。
友情链接:请猛戳这里
GIT的基本使用及应用场景的更多相关文章
- git rebase 还是 merge的使用场景最通俗的解释
什么是 rebase? git rebase 你其实可以把它理解成是“重新设置基线”,将你的当前分支重新设置开始点.这个时候才能知道你当前分支于你需要比较的分支之间的差异. 原理很简单:rebase需 ...
- git worktree 是什么及其使用场景
先上总结: 在git worktree出现之前, git切换分支前后的文件都只存在在当前文件夹下, git worktree出现之后, 我们可以将分支切换到其他文件夹下 比如如果你的项目有很多个版本分 ...
- git 回退各种场景操作
在git的一般使用中,如果发现错误的将不想提交的文件add进入index之后,想回退取消,则可以使用命令:git reset HEAD <file>...,同时git add完毕之后,gi ...
- 45个 GIT 经典操作场景,专治不会合代码
大家好,我是小富~ 技术交流关注公众号:程序员内点事 传送门:原文地址 git对于大家应该都不太陌生,熟练使用git已经成为程序员的一项基本技能,尽管在工作中有诸如 Sourcetree这样牛X的客户 ...
- Git教程之撤销修改(7)
自然,你是不会犯错的.不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行:
- [转] git reset简介
http://blog.csdn.net/hudashi/article/details/7664464 http://guibin.iteye.com/blog/1014369 http://hi. ...
- Git使用过程
Git-------目前世界上最先进的分布式版本控制系统(没有之一) 什么是版本控制系统? 说简单点,就是一个文件,对其增加.删除.修改都可以被记录下来,不仅自己可以修改,其他人也可以进行修改 每次对 ...
- git第一篇---基本命令
摘要: (1)用git而不是svn.分布式而不是集中式 (2)名词解释 origin是父目录的意思,master是 一个特殊的分支而已.具体参看做最下边: 1.创建仓库 mkdir git cd gi ...
- Git 远程分支的pull与push
Git 远程分支的pull与push 远程分支信息查看 git branch -r #查看远程分支 git branch -a #查看所有分支,本地和远程 git remote show [remot ...
随机推荐
- package-lock.json和package.json区别
package.json里面定义的是版本范围(比如^1.0.0),具体跑npm install的时候安的什么版本,要解析后才能决定,这里面定义的依赖关系树,可以称之为逻辑树(logical tree) ...
- 在Linux安装ASP.NET Core运行时环境
我使用的是Centos7 ,其它的Linux请参考微软文档 微软官方介绍文档: https://www.microsoft.com/n ...
- 【转】PyQt5开发环境配置并使用
[转]PyQt5开发环境配置并使用 https://blog.csdn.net/HuangZhang_123/article/details/78046706 本人新书<玩转Python网络爬虫 ...
- Pytorch tutorial 之Datar Loading and Processing (2)
上文介绍了数据读取.数据转换.批量处理等等.了解到在PyTorch中,数据加载主要有两种方式: 1. 自定义的数据集对象.数据集对象被抽象为Dataset类,实现自定义的数据集需要继承Dataset. ...
- Linker Scripts3--简单的链接脚本命令1
1.前言 这个部分我们描述了简单的链接脚本命令 2.设置entry point 程序中第一条运行的指令被称为入口点entry point,可以使用ENTRY链接脚本命令设置entry point,参数 ...
- mac使用技巧之截图
1.选定区域截图 command+shift+3 选定区域按住control,可以直接截图到剪切板, 按option可以进行比例缩放. 按住shift可以选定区域 按住空格键可以进入窗口截图模式. 2 ...
- Windows PowerShell 入門(3)-スクリプト編
これまでの記事 Windows PowerShell 入門(1)-基本操作編 Windows PowerShell 入門(2)-基本操作編 2 対象読者 Windows PowerShellでコマンド ...
- Python3学习笔记03-基础数据类型
Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对 ...
- 设计模式C++学习笔记之十九(State状态模式)
19.1.解释 概念:允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它的类. main(),客户 CLiftState,电梯状态抽象类 CCloseingState,电梯门关闭 ...
- ffmpeg 加载双语字幕
set infile=in.mp4 set subfile1=cn.srt set subfile2=en.srt set subvf1="subtitles=%subfile1%:forc ...