前言:

  使用Git版本控制器差不多有一年多的时间了,在这一年多的时间里对这个传说的的分布式版本控制工具有了一定的了解。在实战项目开发中,对关于如何在通过Git提交项目,以及如何使用Git命令对提交的文件进行撤销,回退/还原,删除等相关操作有了一定的了解。以下主要是我在工作,学习中对自己使用Git的一些总结。

Git文件的四种状态:

未跟踪(untrack):未追踪,表示文件为新增加的

已修改(modified):表示修改了文件,但还没保存到git仓库中

已暂存(staged):表示修改的文件提交到了暂存区,但是还没有提交到本地Git版本库

已提交(committed):表示数据安全提交到了本地Git版本库

Git工作的四个区域:

Working Directory(工作目录):即正在编辑的文件状态。文件状态为未跟踪(untrack)和已修改(modified)在此区域内

Staging Area(暂存区):保存了下次将提交的文件列表信息。文件状态为已暂存(staged)在此区域内

Repository(本地仓库):提交到本地仓库的文件

Repository(远程仓库):已提交到远程计算机内的文件

提交流程为:工作区》暂存区》本地版本库》远程版本库

多个Git账号的登录与切换:

在Git Bash Here的控制台里输入:

git config --global user.name "你的名称"
git config --global user.email "你的邮箱" 切换完成后,查看对应的账号:
git config user.name
输出账号名称:YSGStudyHards

详情参考博客:https://blog.csdn.net/qq_36602939/article/details/79794686 

查看Git项目远程仓库地址:

git remote -v

查看用户名和邮箱地址:

//查看用户名
git config user.name
//查看邮箱地址
git config user.email 

拷贝一个Git仓库到本地:

git clone

开发环境中Git完整提交步骤:

首拉取服务器代码:

注意:提交代码之前,需先从服务器上面拉取代码,以防覆盖别人代码!

git pull 

查看当前工作目录树的工作修改状态(这个命令在git中使用最频繁了,原因会告诉你下一步该做的事情):

git status  

将工作区修改添加的文件提交到暂存区:

git add + 文件

git add -u + 路径:将修改过的被跟踪代码提交缓存

git add -A + 路径: 将修改过的未被跟踪的代码提交至缓存  

将暂存区代码提交到本地仓库中:

git commit -m “功能修改,这里是注释”

将代码推送到服务器(主分支):

git push origin master  

Git提交过程遇到问题:

误将代码提交到暂存区中(git add):

解决办法:利用 git reset 命令将撤回缓存中的代码。

误将暂存区代码提交到本地仓库(git commit):

解决办法:

git reset —soft + 版本号

回退到某个版本,只回退了commit的信息,不会改变已经修改过的代码。

git reset —hard + 版本号

彻底回退到某个版本,本地的代码也会改变上一个版本内容

git pull和git fetch的用法及区别:

git pull (拉取):

  是拉取远程分支更新到本地代码库的操作,比如远程仓库的学习资料有更新,需要把新的内容下载下来,可以使用git pull 是相当于从远程仓库获取最新版本,然后再与本地分支merge(合并)!

git fetch (提取):

  理解 fetch 的关键, 是理解 FETCH_HEAD,FETCH_HEAD指的是: 某个branch在服务器上的最新状态’。这个列表保存在 .Git/FETCH_HEAD 文件中, 其中每一行对应于远程服务器的一个分支。

当前分支指向的FETCH_HEAD, 就是这个文件第一行对应的那个分支,使用git fetch获取远程仓库最新代码,但是不会自动合并(merge),git fetch更安全一些,因为在merge(合并)前,我们可以查看更新情况,然后再决定是否合并。

Git撤销,回退/还原,删除操作:

Git取消从工作区提交到暂存区的文件追踪:

在使用git的时候,有些文件是不需要上传的,所以就可以修改
例如:
如果是对所有文件都取消跟踪的话,就是
git rm -r --cached .   //不删除本地文件
git rm -r --f .   //删除本地文件【不推荐使用,因为会把本地的文件也给删除了】 对某个文件取消跟踪
git rm --cached readme1.txt //删除readme1.txt的跟踪,并保留在本地(推荐使用)
git rm --f readme1.txt //删除readme1.txt的跟踪,并且删除本地文件。

工作区于暂存区之间的提交回退操作:

# 添加指定文件到暂存区
git add [file1] [file2] ...
# 添加指定目录到暂存区,包括子目录
git add [dir]
# 添加当前目录的所有文件到暂存区
git add .
#当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可以使用
git rm file_path
#当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 这个时候直接push那边这个文件就没有,如果push之前重新add那么还是会有。
git rm --cached file_path(文件名称,ysg.txt)
#直接加文件名 从暂存区将文件恢复到工作区,如果工作区已经有该文件,则会选择覆盖
#加了【分支名】 +文件名 则表示从分支名为所写的分支名中拉取文件 并覆盖工作区里的文件
git checkout

版本库回退到工作区:  

【这里操作是已经提交了在本地代码库的操作】
#去掉上一次的提交(会直接变成add之前状态,即取消追踪)
git reset HEAD^
#去掉上一次的提交(变成add之后,commit之前状态)
git reset --soft HEAD^  

查看提交历史

git log                         # 查看提交历史
git log -p <file> # 查看指定文件的提交历史
git blame <file> # 以列表方式查看指定文件的提交历史
git log --oneline # 查看提交日志,并且只显示第一行

合并与衍合:

git merge <branch>               # 合并指定分支到当前分支
git merge --abort # 取消当前合并,重建合并前状态
git merge dev -Xtheirs # 以合并dev分支到当前分支,有冲突则以dev分支为准
git rebase <branch> # 衍合指定分支到当前分支  

Git分布式版本控制器使用的更多相关文章

  1. 细说GIT分布式版本控制器

    一.Git介绍 Git是目前世界上最先进的分布式版本控制器.Svn CVS 版本控制器:就是用来追溯自己书写的代码的记录信息.好处:可以非常方便的记录何时何地何人操作了哪些代码. 什么是分布式版本控制 ...

  2. iOS:Git分布式版本控制器系统

    Git的使用 1.Git简介: Git是一个开源的分布式版本控制系统.与SVN.CVS相比 分布式    不需要中心仓库 Git的版本号都是生成的一个哈希值,比如:bbaf6fb5060b4875b1 ...

  3. Git分布式版本控制器安装注意点及其常用命令

    将git按照默认选项下载安装后,打开git bach版面进行git命令行操作(记住在安装的过程中文件夹中不能存在中文):注:Windows下,路径名不要包含中文,因为Git对中文支持不给力,可能会存在 ...

  4. GIT分布式版本控制器的前后今生

    Git的入门与安装 GIT基础操作 GIT的分支应用 GITLAB应用 gitlab与pycharm应用 GITHUB使用

  5. GIT分布式版本控制系统

    Git诞生历史 我想大家还记得Linus torvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自全球Linux ...

  6. Git ——分布式版本控制系统

    Git ——分布式版本控制系统 本人git主页地址:https://github.com/lendoon/test.git git使用心得:初次接触git在课堂上,老师给我们提供了一个代码托管的场所, ...

  7. 手把手教你玩转Git分布式版本控制系统! (转载)

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 Git诞生历史 ...

  8. 手把手教你玩转Git分布式版本控制系统!

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 1 Git诞生历 ...

  9. g4e基础篇#2 Git分布式版本控制系统的优势

    g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...

随机推荐

  1. Java类BufferedImage

    https://docs.oracle.com/javase/7/docs/api/java/awt/image/BandedSampleModel.html

  2. SpringBoot与数据层

    1.JDBC <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  3. Java入门系列之集合LinkedList源码分析(九)

    前言 上一节我们手写实现了单链表和双链表,本节我们来看看源码是如何实现的并且对比手动实现有哪些可优化的地方. LinkedList源码分析 通过上一节我们对双链表原理的讲解,同时我们对照如下图也可知道 ...

  4. Response to 16岁的篮球投手

    关于篮球,我想写的很多,被偏爱的运动,被赞美的运动,带着青春的万丈光泽. 我们对易建联的苛刻是因为想当然,对大侄子的溺爱是因为急功近利.过于娱乐化和商业化,让一项竞技体育变得像是豆瓣八组的吃瓜盛宴. ...

  5. 学习使人快乐9--eclipse常用快捷键总结

    Ctrl + F11 按上次方式执行Ctrl + Shift + / 加上注释/**/Ctrl + Shift + \ 取消注释/**/Ctrl + /  加上或消除行注释Ctrl + D 删除当前行 ...

  6. javaWeb核心技术第十二篇之分页和条件

    分页:limit ?,? 参数1 : startIndex 开始索引. 参数2 : pageSize 每页显示的个数 n 表示第几页 给定一个特殊的单词 pageNumber select * fro ...

  7. 安装上传下载插件,jdk及redis

    安装rz sz (1)编译安装root 账号登陆后,依次执行以下命令:cd /tmpwget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gzt ...

  8. 编译原理之不懂就问-First集

    老师PPT: 这条语言实在是..通俗易懂

  9. 安装SQL数据库时遇到问题。需要更新以前的visual studio 2010实例

    安装SQL数据库时遇到问题.需要更新以前的visual studio 2010实例此计算机安装了需要service pack 1更新的visual 2010,必须安装此更新才能成功安装选择的SQL s ...

  10. EXPDP导数报ORA-00942案例

    使用数据泵(expdp)导数时遇到了ORA-31626 & ORA-00942 错误,数据库版本为Oracle Database 10g Release 10.2.0.5.0,具体错误如下所示 ...