git 知识点
- git 删除远程已经推送过的文件或者文件夹
git rm -r --cached [文件或文件夹]
git status
git add .
git commit -m '删除远程仓库文件,本地仓库和暂存区不受影响'
git push
- 问:如何上传项目代码到gitlab?
答:
git remote add
- 把文件commit到master
- 在gitlab上创建dev分支
- pull后,切换到dev分支
- 把master的内容merge到dev。
- 想把某些目录或文件加入忽略规则,.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:(后面的点号根据情况可以是文件或文件夹)
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
vue项目修改了代码,必须打包。
mac下git安装:
brew install git
- 运行brew命令,需要先安装 homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
会提示是否继续,按return键继续。
- git 术语:
英文 | 中文 |
---|---|
working directory(workspace) | 工作区 |
stage(或index) | 暂存区 |
repository | 本地仓库 |
remote | 远程仓库 |
- git 常用命令:
命令 | 作用 | 备注 |
---|---|---|
git config | git 的配置信息 | |
git add | 把文件修改添加到暂存区(git add 不支持添加空文件夹) | |
git commit | 把暂存区的所有内容提交到当前分支 | |
git status | 查看没有提交的文件 | |
git branch -a | 查看所有分支,包括远程的和本地的 | |
git branch -l | 查看本地分支 | |
git branch -r | 查看远程分支 | |
git checkout [分支名] | 切换分支 | |
git remote show origin | 查看分支远端信息 | |
git init | 把这个目录变成Git可以管理的仓库 | |
git checkout -- [文件] | 把文件在工作区的修改全部撤销(其实是用本地仓库里的版本替换工作区的版本) | |
git rm | 删除的是:本地仓库、工作区的文件 | |
git rm [-r] [--cached] | 删除的是本地仓库中的文件,本地工作区的文件会保留且不再与远程仓库发生跟踪关系 | |
git remote -v | 查看远程仓库地址 |
- git 撤销操作 表格显示:
命令 | 撤销操作命令 | 说明 |
---|---|---|
场景1:改乱了工作区某个文件的内容,还没运行git add命令 | git checkout -- file | |
场景2:git add [文件或文件夹] | git reset HEAD [path],进入场景1 | |
场景3:git commit,且没有推送到远程库 | git reset --hard [commit_id] |
git 撤销操作 文章说明:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加add到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交commit不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
http://joehill.me/2016/02/18/2016-02-18-Git-Tutorial/撤销 git add 操作(还没有commit):
git status 先看一下add 中的文件
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.Java 就是对某个文件进行撤销了撤销 git commit 操作(还没有push):
1.先使用
git log 查看节点
commit xxxxxxxxxxxxxxxxxxxxxxxxxx
Merge:
Author:
Date:
2.然后
git reset commit_id
说明:
git reset commit_id (回退到上一个 提交的节点 代码还是原来你修改的)
git reset –hard commit_id (回退到上一个commit节点, 代码也发生了改变,变成上一次的)
还原已经commit提交的修改
此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交
git revert HEAD 撤销前一次 commit
git revert HEAD^ 撤销前前一次 commit
git revert commit-id (撤销指定的版本,撤销也会作为一次提交进行保存)
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。git reset 与 git revert:
带 --hard 是工作区和暂存区都重置,不带 --hard 是只重置暂存区
// 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
$ git reset [file]
// 重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard
// 重置当前分支的HEAD为指定commit,同时重置暂存区,但工作区不变
$ git reset [commit]
// 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区
$ git reset --hard [commit]
// 重置当前分支的HEAD为指定commit,但保持暂存区和工作区不变
$ git reset --keep [commit]
// 新建一个commit,用来撤销指定commit
// 后者的所有变化都将被前者抵消,并且应用到当前分支
$ git revert [commit]
git reset HEAD的背后原理:
HEAD为目前最新的commit节点, git reset HEAD表示将档案还原到目前最新的commit,若没有任何参数,预设为--mixed :
--soft : repository的档案会被还原到HEAD,但stage与working directory档案不变。
--mixed : repository与stage的档案都会被还原到HEAD,但working directory的档案不变。
--hard : repository、stage与working directory的档案都会被还原到HEAD。Git的版本库(Repository)里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
命令中用HEAD时,表示最新的版本。
工作区(Working Directory):就是你在电脑里项目的主目录
基本操作流程:
说明:当前在自己的分支:self;远端开发分支:dev。
基本命令:
git status
git add .
git commit -m 'modify'
//从远端dev拉取
git pull origin dev
//将自己分支self推送到远端dev
git push origin self:dev产生秘钥bash命令:ssh-keygen -t rsa -C "xxx@xxx.com", 然后一路回车(好像3下),vi ~/.ssh/id_rsa.pub,复制出内容粘贴到SSH Keys。
git 命令配置简写,2种方法
1.命令行配置
$ git config --global alias.st status
2.修改配置文件:~/.gitconfig
$ vi ~/.gitconfig
...
[alias]
st = status
ci = commit
co = checkout
br = branch
[user]
name = Your Name
email = your@email.com
...
- https 和 SSH 的区别:
1、前者可以随意克隆github上的项目,不管是谁的;而后者要求你必须是要克隆项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。
2、https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码,否则不需要输入密码。
git 知识点的更多相关文章
- git 知识点汇总
git commit git commit 命令执行后, git 主要执行了三个操作: 为每一个文件生成一个快照 每一个文件其实是真的数据, 所以 git 会把整个文件内容转成二进制, 然后经过压缩直 ...
- 【刷题】Git知识点
参考:学习总结之Git学习-总 1-origin是什么? 答:origin 是默认的远程版本库名称,可以在 .git/config 之中进行修改.在默认情况下,origin指向的就是你本地的代码库托管 ...
- git知识点
先说几个名词 未被追踪的文件:指的是新建的文件或文件夹且还没加入到暂存区(新建的还没有被git add 过得) 未加入到暂存区的文件:指的是已经被追踪过,但是没有加入到暂存区(已经执行过git add ...
- Git知识点整合
Git安装 Windows上安装Git 64 位安装包下载地址 : https://github.com/git-for-windows/git/releases/download/v2.16.2.w ...
- git-it 教程,一些git知识点。/ 如何解决merge conflict/ 如何使用Github Pages./Git术语表
一个git使用教程 https://:.com/jlord/git-it-electron#what-to-install 一个在线Github的功能教学:https://lab.github.com ...
- Git知识点汇总
设置全局用户名 git config --global user.name "yourname" 设置全局邮箱 git config --global user.email &qu ...
- git知识点总结
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器.集中式版本控制系统最大的 ...
- git 知识点积累
1.初始化指定目录作为git目录 git init newpro 2.git add xx.uve 3.克隆项目 git clone git clone git://github.com/schac ...
- git知识点整理
随机推荐
- POJ-1475 Pushing Boxes (BFS+优先队列)
Description Imagine you are standing inside a two-dimensional maze composed of square cells which ma ...
- linux下常用的截图、录屏工具
录屏: 在linux下常用的录屏工具有5种,可以baidu或者google下喔,我选用的是recordMydesktop,使用非常方便,用时注意先把每秒桢数调高,否则效果必然很差. 在ubuntu下可 ...
- Centos7上部署openstack mitaka配置详解(将疑难点都进行划分)
在配置openstack项目时很多人认为到处是坑,特别是新手,一旦进坑没有人指导,身体将会感觉一次次被掏空,作为菜鸟的我也感同身受,因为已经被掏空n次了. 以下也是我将整个openstack配置过程进 ...
- spring cloud 学习(一)初学SpringCloud
初学SpringCloud 前言 在SpringBoot的坑还没填完的情况下,我又迫不及待地开新坑了.主要是寒假即将结束了,到时又得忙于各种各样的事情……留个坑给自己应该就会惦记着它,再慢慢地补上…… ...
- Phython笔记初识
Phython笔记初识 Python 1898 第一版本 1991 荷兰人 Guido 协议 Gpl 动态语音类型
- LTrim、RTrim 和 Trim 函数
返回不带前导空格 (LTrim).后续空格 (RTrim) 或前导与后续空格 (Trim) 的字符串副本. LTrim(string) RTrim(string) Trim(string) strin ...
- (C#基础)各种加密学习
之前,一直想对这个做一个了解,但是总是坚持不下去,很急躁.最近看了几遍文章,很有感触,于是又来重新开始学习,从最最基础的开始——正所谓“慢就是快”.心态变了,继续吧!上代码! using System ...
- 告别.NET生成报表统计图的烦恼
告别.NET生成报表统计图的烦恼 标签: 报表.netstatistics图形数据库文档 2009-10-09 12:00 635人阅读 评论(0) 收藏 举报 分类: .net程序设计(C#)(2 ...
- zabbix的搭建与入门
一,Zabbix架构 zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制 ...
- 慕课网笔记之oracle开发利器-PL/SQL基础
实例1--if语句 /* 慕课网Oracle数据库开发必备之PL/SQL_2-3 判断用户从键盘输入的数字 1.如何使用if语句 2.接收一个键盘的输入(字符串) */ set serveroutpu ...