git学习笔记——Linux和Windows下git的基本操作
git学习笔记——Linux和Windows下git的基本操作
github主页:https://github.com/Taot-chen
一、Linux
环境
1、安装git
sudo apt-get install git
2、设置git账号信息
git config --global user.name "你的git账号用户名"
git config --global user.email "你的邮箱"
3、设置让credential helper 帮助我们在一定时间内在内存中保存我们的code,其中第二行为设置超时的时间
git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'
4、获取ssh秘钥和远程GIT关联
ssh-keygen -t rsa -C "你的邮箱"
# 之后一路回车
cd ~/.ssh
cat id_rsa.pub
# 再在Terminal中复制密钥,添加到github的settings的SSH公钥中,完成免密码登录关联
# 验证ssh通信情况,提示连接成功即可
ssh -T git@github.com# 其他操作就和为windows的几乎一致
5、push常用命令
git init # 初始化本地仓库
git config --list # 可以查看你的git配置信息# 提交文件到本地仓库
git add abc.cpp
git commit -m "first commit" //-m 用于指定本次提交的描述信息# 提交到repository
git remote add origin "github仓库ssh地址" //关联仓库
git push origin master #master 是分支名
# 以后若提交到相同仓库,提交到本地仓库之后,直接git push即可# 克隆项目
git clone "项目的ssh地址"
6、push报错时调大缓存
git config http.postBuffer 52428800 //(根据文件大小随便调整)
二、Windows
环境
1、版本控制;备份与修改
1)本地版本控制系统
把版本号存入数据库,来区分记录版本的更迭。
2)集中化版本控制系统(CVCS)
具有一个专门用于存放版本的修订版本的服务器,并且能够借助版本记录来方便地定位相关的记录。
3)分布式版本控制系统(DVCS)
客户端不只是提取出最新版本的文件快照,而是把最原始的代码仓库镜像到本地,任何一处协同处理的服务器故障,事后都可以用任何一个镜像出来的本地仓库恢复。
2、Windows下git的安装和配置
1)安装
在git官网下载安装对应的版本,在菜单中找到Git->Git Bash
,出现命令行窗口,即是安装成功。
查看版本:
git --version
2)配置用户名和邮箱
git config --gobal user.name "your user name" # 配置用户名
git config --gobal user.email "your email" #配置邮箱
git config --list # 查看所有配置
3、git文件的三种状态和工作模式
1)三种状态
- 已提交(committed):数据已经安全地保存到本地数据库中
- 已修改(modified):修改了文件,但还没保存到数据库中
- 已暂存(staged):对一个已修改的文件的当前版本作了标记,使之包含在下次提交的快照中
2)三个工作区域
- 工作区:本地项目目录
- 暂存区:对修改后的文件进行快照,添加到暂存区
- git仓库:工作区的隐藏目录
.git
,不算是工作区,是git的版本库
3)git的工作流程
- 在工作区中修改某些文件;
- 对修改后的文件进行快照,添加到暂存区
- 提交更新,将保存在暂存区的快照永久存储在git仓库中
拉取: git仓库->本地工作区
提交: 本地工作区->暂存区->git仓库
4、创建版本库并提交文件
1)初始化本地仓库
在本地初始化一个没有任何文件的空仓库。
git init
2)新建文件夹git01.txt并添加到暂存区
git add # 将文件添加到暂存区
git add . # 提交当前目录的全部文件
git status # 查看文件的状态
git commit # 将暂存区的文件提交到本地仓库
git log # 查看完整的提交日志信息
git diff HEAD --file # 查看文件法file历次提交的区别
例如:
在Git Bash
中
git init # 创建空仓库
git add git01.txt # 将文件git01.txt添加到缓存区
git commit -m '第一次提交' #提交文件到本地仓库,单引号内的内容是本次提交的注释,必须要有
git status # 查看暂存区文件状态
git log # 查看完整的提交记录
5、文件修改与提交修改
可以直接在工作区文件中进行修改,之后再添加到暂存区,提交到本地仓库
注: 提交之前必须先添加到暂存区
1)暂存区文件的提交与撤销
提交:git add/git commit
撤销:
从暂存区移除:
git restore --staged git02.txt # 从暂存区移除文件git02.txt git reset HEAD git02.txt # 取消关于文件git02.txt上一次的操作
2)版本回退
简化显示提交记录:
git log --pretty=oneline
此时HEAD指针默认指向最后一次提交的记录。版本回退就是让HEAD指针想要回退到的版本。
git reset --hard HEAD^ # 回退一个版本
git reset --hard HEAD^^ # 回退两个版本
git reset --hard HEAD~n # 回退n个版本
git reset --hard "版本识别码” # 回退或者前进到版本识别码所在的版本
git reflog # 显示所有的提交记录(包括HEAD指向的版本之后的版本),即可以显示用户的每一次操作的记录
3)文件删除
git ls-files # 查看本地仓库的文件目录
git rm filename # 删除文件filename
# 另一种删除方法:现在工作区删除文件,之后再提交操作即可
6、远程仓库
1)github
git clone "项目地址"(github地址) # 下载github项目(可以不登陆)
2)ssh下载(需要登陆)
# 首先需要在gitbash中生成一个key
ssh-keygen -t rsa -C "github邮箱"# 找到生成的公钥,打开后复制,之后再去github中添加`SSH and GPG keys`
# 验证有没有添加成功
ssh -T git@github.com
# 出现您以被成功认证即可(即此时已经将ssh绑定了github)# 下载项目
git clone "项目地址" (ssh地址)
3)本地项目(本地仓库)推到远程仓库
# 在github新建一个仓库
# 将本地项目提交到本地仓库# 将本地仓库绑定github上面的远程仓库
git remote add origin "github仓库地址"
# 将其推到远程仓库的主干上(远程仓库中包含本地仓库的所有提交记录)
git push -u origin master
# 以后的更新推送,只需要在本地提交完成之后,直接如下命令
git push
7、git分支操作
主干是已经上线的项目,分支中的任何操作都不会影响主干的功能。在分支完善无误之后,再将其合并到主干即可。
1)本地分支操作
常用基本命令
命令 | 描述 |
---|---|
git checkout branch | 切换到指定分支 |
git checkout -b new_branch | 新建分支并切换到新建分支 |
git branch -d branch | 删除指定分支 |
git branch |
查看所有分支,并且* 标记当前所在分支
|
git merge branch | 合并分支 |
git branch -m / -M oldbranch newbranch | 重命名分支,如果new_branch名字分支已经存在,则需要使用-M强制重命名 |
- 切换到指定分支:git checkout branch
- 新建分支并切换到新建分支:git checkout -b new_branch
- 删除指定分支:git branch -d branch
- 查看所有分支,并且
*
标记当前所在分支:git branch - 合并分支:git merge branch
- 重命名分支,如果new_branch名字分支已经存在,则需要使用-M强制重命名:git branch -m | -M oldbranch newbranch
注:
只能在主干分支上来合并分支,不可反过来。(虽然git不会报错,但是这样是不可以的)
分支所具有的内容,就是创建分支的时候主干所具有的内容。
2)远程分支操作
分支push和pull
相关命令
命令 | 描述 |
---|---|
git branch -a | 查看本地与远程分支 |
git push origin branch_name | 推送本地分支到远程 |
git push origin :remote_branch | 删除远程分支(本地分支还保留) |
git checkout -b local_branch origin/remote_branch | 拉取远程指定分支并在本地创建分支 |
获取远程分支的最新状态
git fetch
图表的方式显示操作记录
git log --graph --pretty=oneline
3)本地分支冲突解决
# 当分支和主干的同一文件的同一行不同的时候,合并分支就会出现冲突
# 根据具体的需要修改,使之相同即可
4)多人协同操作冲突
# 两个用户对同一个文件的同一行进行了不同的操作
# 解决方法:在推送之期拉一下远程仓库,在本地根据具体的需求解决完冲突之后再推送
9、标签管理
标签操作基本命令git tag
命令 | 描述 |
---|---|
git tag tag_name | 新建标签,默认为HEAD |
git tag -a tag_name -m ‘xxx’ | 添加标签并指定标签描述信息 |
git tag | 查看所有标签 |
git tag -d tag_name | 删除一个本地标签 |
git push origin tag_name | 推送本地标签到远程 |
git push origin --tags | 推送全部未推送过的本地标签到远程 |
git push origin :refs/tags/tag_name | 删除一个远程标签 |
10、Idea下git基本操作
1)环境集成配置
Configure
->Settings
->搜索git->在Path to Git executable中添加git的安装路径(一直到git.exe)->test
->出现版本号,即表示成功->添加github
或
File
->Other Settings
->Setting for New Projects
->Git/Git Hub
2)推送项目到远程仓库
项目提交到本地仓库->创建远程仓库->绑定远程仓库->推送到远程仓库
3)分支操作
4)gitignore插件
5)冲突及其解决
git学习笔记——Linux和Windows下git的基本操作相关推荐
- linux 创建线程函数吗,[笔记]linux下和windows下的 创建线程函数
linux下和windows下的 创建线程函数 #ifdef __GNUC__ //Linux #include #define CreateThreadEx(tid,threadFun,args) ...
- 【git学习笔记(一)】Git基础
前言:这段时间,打算学习一下git的操作,了解一下原理,而不是仅仅局限于一些基础的操作,特在此记录一下. 2.1Git基础–获取Git仓库 目的:能够配置并初始化一个仓库(repository).开始 ...
- Solr学习笔记001---solr在windows下的安装及配置
JAVA技术交流QQ群:170933152 首先,solr是基于java开发的,所以使用的话需要先进行java环境的配置,在Java环境配置好之后就可以去http://www.apache.org/d ...
- pythonspark安装_Spark学习笔记--Spark在Windows下的环境搭建
本文主要是讲解Spark在Windows环境是如何搭建的 一.JDK的安装 1.1 下载JDK 首先需要安装JDK,并且将环境变量配置好,如果已经安装了的老司机可以忽略.JDK(全称是JavaTM P ...
- 【学习笔记】在windows下进行基于TCP的本地客户端和服务端socket通信
文章目录 socket介绍 java中使用socket 基于tcp的socket通信 使用ServerSocket类创建一个web服务器:(java) windows下的基于tcp的socket编程( ...
- RabbitMq学习笔记001---RabbitMq在Windows下安装配置
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...
- Git 学习笔记:自定义Git(完)
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git学习笔记(四)
一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...
- Git学习笔记(一)
Git学习笔记(二) 目录 一.git简介 1.1 历史 1.2 特点 二.安装与配置并创建一个版本库 2.1 安装配置 2.2 创建一个版本库 三.版本的创建与回退 3.1 创建一个版本 3.1.1 ...
最新文章
- aspcms各版本漏洞0day集合
- android应用控制百度地图,Android中应用百度地图API开发地图APP实例-显示百度地图...
- php团队奖,PHP生成奖状
- scala学习-scala中的元组Tuple概念
- EMNLP'21 Oral | 拓展你的视野!UCLA提出:地区多样性视觉常识推理
- Sql Server trace flags
- Java后端开发实习面试
- SwiftyJSON的使用详解
- 中国脑计划颠覆性创新之路二,欧美脑计划存在重大缺陷
- 商品期货市场常见的量化交易策略
- 基于单幅图像Patch Map的稳健除雾(PMS-Net: Robust Haze Removal Based on Patch Map for Single Images_CVPR_2019)
- 《Android开发偶遇有趣算法问题》---获得地图方圆r米内的一个随机坐标点(求单位圆内随机点)
- Blender 3.2 强势更新!附下载地址和更新内容
- 2020-10-26可转债新规
- Ubuntu18.04 realsenseD435i深度摄像头外参标定的问题
- 5G无线关键技术 — 非正交多址接入技术
- 【多模态】CLIP模型
- Canvas + WebGL中文艺术字渲染
- 高中计算机会考vb试题,信息技术高中会考VB模块操作题试题库
- vue 登录界面无法跳转问题
热门文章
- 开手机私服,服务器配置参考事项
- Linux串口输出启动信息,linux开发板启动过程串口打印信息
- 【HCIE-RS 天梯路】QoS
- Export/Import 使用技巧与常见错误
- fog(雾)和haze(霾)区别
- C# 文件的保存与读取
- Build and run UDK2021.8 Emulator in Deepin-20.2.4
- Google Cloud Messaging:可折叠消息
- Maxon收购Redshift Rendering Technologies
- java实现双人摇骰子_Java实现的简单掷骰子游戏示例