Git常识命令

OCaml智者
• 阅读 1591

Git可以界面化操作也可以命令行操作

工作流

① 工作区:不仅包含你实际更改的文件还应当包括当前修改但未add存入暂存区的文件变化信息
② 暂存区:临时存储文件的变化信息,记录file文件上的修改信息(细化时间节点)
③ 历史区:记录了各个版本,可查看代码更新,也可回滚到其他版本

三个区域的提交过程:
工作区->暂存区(临时储存)->历史区(生成版本),如需要回滚(直接从历史区把需要的版本覆盖工作区)
注意:有重大改变的版本或是在一次修改工作整体完成之后才使用commit。而在这之间需要保存的修改,一般都是存放在暂存区。

Git常识命令

工作流命令

初始化git(不能嵌套使用git)

git init
以某个文件夹作为git管理的目录,初始化后会产生一个.git文件夹(勿删)

添加暂存区

git add . 或者 -A 或者 文件名

添加到历史区

git commit -m"initial"
-m参数必须添加(第一次提交叫根提交)
注意:空文件夹默认不会提交,默认添加.gitignore文件(.idea和.DS_Store和node_modules)

添加暂存区添加历史区

git commit -a -m 'info'
此命令只能针对提交过的文件使用

查看提交进程信息

git status
如果是红色:未添加到暂存区
如果是绿色:添加到暂存区
如果是没有:添加到历史区

查看提交记录

git log

比较区的不同

git diff    //不加参数即默认比较工作区与暂存区
git diff --cached   //比较暂存区与最新本地版本库(本地库中最近一次commit的内容)
git diff HEAD   //比较工作区与最新本地版本库(如HEAD指向的是分支,那HEAD还可以换成主干)
git diff --cached 版本号   //比较暂存区与指定指定版本的差异
git diff 版本号   //比较工作区与指定版本的差异
git diff 版本号1 版本号2   //比较两个版本号之间的差异

工作区的修改撤销

git checkout 文件名
工作区的修改撤销到最近一次git add 或 git commit时的内容
注意:如果文件名是.就是把暂存区全部覆盖工作区

暂存区的修改撤销

git reset HEAD 文件名
清空add命令向暂存区提交的关于文件的修改
注意:此命令仅改变暂存区,并不改变工作区

历史区版本号

git reflog //所有的历史区版本号

回滚历史区

git reset --hard 版本号

分支命令

查看分支

git branch

创建分支

git branch 分支名 

切换分支

git checkout 分支名
注意:分支上添加文件需要提交后才能归这个分支所有,否则你改的只是工作区内容,而且不提交是无法切换支线的

创建并切换分支

git checkout -b 分支名

合并分支

git merge 分支名

① 默认会将分支上所有提交的内容全部合并(分支提交了两次版本,会把分支的两个版本都合并到主支),也可以选择git cherry-pick 版本号来合并某一个历史

② 合并之后,就是master和dev共有的,合并文件改变,master和dev都改变

③ 合并完成后,一般把dev这个分支删除

问题:同行修改合并时会冲突,需手动更改后,再提交历史区(不同行不冲突,需注意顺序)

避免:

  1. 首先要建立分支,分支修改,提交到历史区
  2. 然后在回到主支上,修改主支,提交到历史区
  3. 最后再合并主支和分支

删除分支

git branch -D 分支名
不能在当前分支上,并且字母D尽量大写

仓库命令

链接远程仓库

git remote add 别名 自己远程仓库链接 

查看/删除/更新远程仓库链接

git remote -v   //查看
git remote rm 别名   //删除
git remote update 新别名   //更新

克隆到本地

git clone 远程地址 文件夹名
这里文件夹名就是设置拉取到本地时候文件夹名

拉取最新代码

git pull origin master
如果git pull -u origin master 第一次这么写,后面只需要git pull即可

推送到远程仓库

git push origin master 
git push origin master --force   //强制推送本地的代码
线上和线下的修改可能冲突,可以强制以本地为准推送
推送之前可能需要拉取远程的内容,合并后再次推送,如产生冲突,需解决冲突。

执行命令导出

history >1.txt   //1.txt里面就是执行过的命令

LINUS命令

PWD打印当前目录

print working directory

删除文件夹

rm -rf .git
rm -rf .    //删除整个文件,不要用

创建目录

mkdir 目录名

改变目录

cd 目录位置

显示清单

ls

创建文件

touch 文件

编辑文件

vi 文件名
i   //插入模式(编辑)
esc+:wq   //保存并退出
q!   //强制退出

查看文件内容

cat 文件名
扩展: q 用于命令行过小或是结束时

实际工作

将仓库中的代码pull下来
创建分支

git branch dev //自己的分支名称

切换分支

git checkout dev

修改代码后

git add .
git commit -m''注释'
git push origin dev //自己的分支名称,在githup上生成自己的子分支

切换到主分支

git  checkout master

主分支上拉代码

git pull origin master

合并分支

git  merge  dev
git  add .
git  commit -m '注释'
git  push  origin  master

下次再改代码的时候切换到自己的分支上进行修改

点赞
收藏
评论区
推荐文章
lucien-ma lucien-ma
4年前
Git基础命令教程
Git学习git之前,我们需要先明白一个概念,版本控制!版本控制什么是版本控制版本控制(Revisioncontrol)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发追踪和记载一个或者多个文件的历史记录组织和保护你的源代码和文档统计工作量
胖大海 胖大海
2年前
Git 安装配置
基本概念我们先来理解下Git工作区、暂存区和版本库概念:工作区:就是你在电脑里能看到的目录。暂存区:英文叫stage或index。一般存放在.git目录下的index文件(.git/
GIT常用命令
1、初始化本地Git存储库languagegitinit2、创建远程存储库的本地副本languagegitclonessh://git@github.com/username/repositoryname.git3、检查状态languagegitstatus4、将文件添加到暂存区languagegitaddfil
Stella981 Stella981
3年前
Git管理修改
Git跟踪并管理的是修改,而非文件。那么,什么是修改呢?你新增了一行或者修改了一个词都是一个修改。我们来做个简单的实验就能理解,首先,我们先添加一行内容:$catwhatisgitGitisopensourcesoftware.Git是开源软件。新增第一行然后,提交到暂存区:$g
Stella981 Stella981
3年前
Git 的暂存区(staging area)理解
    通常在很多传统集中式版本控制系统中,只有两个空间用来管理你的数据,一个是你的workingcopy(工作区),另一个便是datastore(版本库),然而在Git中,引入了stagingarea(index)这一概念,我们可以把它看做一个“码头”,你来决定其中的哪些改变可以被“运走”。    有了暂存区,我们的工作区边和Git库就不再直
Stella981 Stella981
3年前
Git学习之忽略特殊文件.gitignore的配置
1.Mac中使用Git上传项目代码时忽略.DS\_Store文件简单的说Mac每个目录都会有个文件叫.DS\_Store,它是用于存储当前文件夹的一些Meta信息。所以每次查看Git目录的状态,如果没有add这个.DS\_Store文件,会有Untrackedfiles:的提示,ad
Stella981 Stella981
3年前
Git客户端图文详解如何安装配置GitHub操作流程攻略
Git介绍分布式:Git版本控制系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具;保存点:Git的保存点可以追踪源码中的文件,并能得到某一个时间点上的整个工程项目额状态;可以在该保存点将多人提交的源码合并,也可以会退到某一个保存点上;Git离线操作性:Git可以离线进行代码提交,因此它称得上是完全的
Stella981 Stella981
3年前
Git(二)Git几个区的关系与Git和GitHub的关联
一、Git的工作区、暂存区和版本库之间的区别和联系  1)工作区    在PC中能看得到的创建的一个管理仓库的目录。比如目录下GitTest里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。    !(https://oscimg.oschina.ne
Stella981 Stella981
3年前
Git使用教程
Windows系统下GIT的使用1:Git简介:1.博客园上面找到的语言:Git是一种非常流行的分布式版本控制系统,它和其他版本控制系统的主要差别在于Git只关心文件数据的整体是否发生变化,而大多数版本其他系统只关心文件内容的具体差异,这类系统(CVS,Subversion,Perforce,Bazaar等等)每次记录有哪些文件作了更新,以及
Stella981 Stella981
3年前
Git和GitHub的基本操作
GIT版本控制系统版本控制系统功能:1.记录版本历史信息(记录每一次修改的记录)2.方便团队之间相互协作开发3.远程开发......常用的版本控制系统cvs/svn:集中式分布系统git:分布式版本控制系统1.GIT工作原
Stella981 Stella981
3年前
Git基础命令篇
一、Git介绍(1)Git是一个开源(LinusTorvalds为了帮助管理Linux内核开发而开发)的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,与常用的版本控制工具CVS,SVN等不同,它采用了分布式版本库的方式,不必服务器端软件支持。(2)Git的工作区、暂存区和版本库:工作区:就