常见Git操作及关键知识点

一、Git三区概念

工作区 (work dict)

暂存区(stage)(add 是添加到当前的暂存区)

提交区(就是当前工作的分支master分支或者branches分支)

git 所有操作都是基于这三个区域进行的

完成一个文件的修改和添加流程是:工作区--->暂存区--->提交区

特别强调一个概念:git的所有行为都是基于修改的而不是基于文件的。

二、常见Git本地仓库操作

创建一个git仓库 git init (用ls -ah 查看当前目录下面会有.git文件)

添加git文件 git add git.txt (添到暂存区)

提交git文件 git commit git.txt (添加到提交区)

查看当前git仓库状态 git status (查看工作区的工作状态)

查看文件和最新版本的区别有两个

git diff git.txt (是工作区和暂存区的比较)

git diff HEAD --git.txt

(注:这里概念有点绕,HEAD指向是最新提交的信息,而暂存区一般都是最新版本,所以这里可以认为两个都是和最新

版本的比较,其中HEAD可以替换为对应的版本号,就是可以理解为和对应版本进行比较)

查看文件的提交修改 git diff --cached git.txt (是暂存区和分支的比较)

查看文件的提交版本记录git log 或者是git log --pretty=oneline

回滚git修改版本上一版本 git reset --? HEAD^ (上上一版本是HEAD^^)

回滚到修改版本的前指定N个版本 git reset --? HEAD~N

回滚到指定版本(版本id以versionid) git reset --? versionid

(注:这里打一个? 指的是对应不同的参数对应不同概念,hard 是三个区全部回退,mixed 默认参数除了工作区其他两个

区域都回退,soft只把分支区回退)

查看具体操作命令就像是liunx系统的history基本功能 git reflog

撤回工作区的具体修改到最近一次的git commit 或者git add 的状态 git checkout -- git.txt

删除一个工作区文件 rm git.txt

删除一个工作区和暂存区文件 git rm git.txt(=先rm 后git add)

恢复删除文件 git reset HEAD 后 git checkout -- git.txt

三、本地仓库和远程仓库处理基本操作命令

关联本地仓库和远程仓库 git remote add origin XXXXX (origin是远程仓库的默认叫法)

推送本地仓库到远程仓库 git push -u origin master(-u 操作在第一次进行的时候添加之后可以不再带此参数)

从远程仓库克隆到本地仓库 git clone XXX(具体路径)

查看远程仓库信息 git remote (-v 可以更详细看对应信息)

四、分支操作

单纯创建分支 git branch git_branch

切换到某个分支 git checkout git_branch

创建并切换到新分支 git checkout -b git_braches (-b 表示创建并切换当前分支,如果完成单纯的切换分支可以去掉-b)

(= 先git  branch xxx 后 git checkout xxx)

查看当前的分支 git branch (列出所以分支,并且会在当前分支上画一个*)

合并指定分支到当前分支 git merge git_branch

删除指定分支 git branch -d git_branch

查看分支合并情况 git log --graph --pretty=oneline --addrev-commit

分支合并禁用fast-forward模式 git merge --no-ff -m "xxxx" git_branch(加--no-ff的目地是为了能用git log看出分支的合并历史)

拉取远程最新提交 git pull

在本地创建和远程对应的分支 git checkout -b branch-name origin/branch-name

建立本地分支和远程分支的关联git branch --set-upstream branch-name origin/branch-name

五、一些特殊操作

git stash 保存当前分支工作区内容

git stash list 查看stash区域保存的某个分支的工作内容

git stash  apply 恢复当前分支的工作内容

git stash drop 删除stash区域保存的某个分支的工作内容

git stash pop 恢复当前分支的工作内容并删除stash区域保存的分支的工作内容

以上stash 操作如果对对应的列表中某个版本操作可在以上后面加对应版本 如 git stash apply [email protected]{0}

六、为当前提交打分支

创建标签git tag vX.X version-id

查看标签信息 git show vX.X

创建带有说明的标签信息 git tag -a vX.X -m "说明信息" version-id

七、个性化设置

git 适当显示不同的颜色 git config --global color.ui true

八、配置个性话git服务器

暂不讲了,可以参考网上的攻略

时间: 2024-10-13 11:31:04

常见Git操作及关键知识点的相关文章

使用github作为远程仓库的常见git操作

[git上传本地代码到github新建仓库]一.建立git本地仓库 1.在本地目标文件夹(Code)中执行命令: git init //初始化本地仓库二.将上传到github的项目文件添加到本地仓库中: 1.将本地需要上传的工程代码复制到Code中: git status //查看本地仓库文件状态 2.将需要上传的文件纳入版本控制 git add XX //XX为目标文件(夹)名,此时执行git status命令,目标文件变为绿色 3.将需要上传的文件提交到本地仓库 git commit -m

Java程序员必备:异常的十个关键知识点

前言 总结了Java异常十个关键知识点,面试或者工作中都有用哦,加油. 一. 异常是什么 异常是指阻止当前方法或作用域继续执行的问题.比如你读取的文件不存在,数组越界,进行除法时,除数为0等都会导致异常. 一个文件找不到的异常: public class TestException { public static void main(String[] args) throws IOException { InputStream is = new FileInputStream("jaywei.t

PHP面向对象关键知识点回顾

一,类中的析构函数(__destruct): 析构函数是自动调用的 析构函数主要用于销毁资源 析构函数的调用顺序是先创建的对象最后被销毁(原理是栈的先进后出) 析构函数什么时候被调用 (1)当程序(进程结束)推出时 (2)当一个对象成为垃圾对象时候,该对象的析构方法也会被调用 (3)所谓垃圾对象,就是指没有任何变量再引用它(没有变量再只指向堆中的对象) (4)一旦对象成为垃圾对象,析构函数就会立即被调用 二,类中使用静态变量(static) 静态变量的引入是为了解决不同的对象实例能够共享同一个变

如何撤销Git操作?

本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:如何撤销Git操作?: Git 版本管理时,往往需要撤销某些操作. 本文介绍几种最主要的情况,给出详细的解释.更多的命令可以参考<常用 Git 命令清单> 一文. 一.撤销提交 一种常见的场景是,提交代码以后,你突然意识到这个提交有问题,应该撤销掉,这时执行下面的命令就可以了. $ git revert HEAD 上面命令的原理是,在当前提交后面,新增一次提交,抵消掉上一次提交导致的所有变化.它不会改变过去的历史,所以是首选方式,

Git操作(提高篇)

Git操作(提高篇) 分支管理 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险.有了分支,就不用怕了.创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次

c#常见stream操作

常见并常用的stream一共有 文件流(FileStream), 内存流(MemoryStream), 压缩流(GZipStream), 加密流(CrypToStream), 网络流(NetworkStream): 1.文件流(读取文件流-输出文件流)FileStream using(Streamstreamwrite=new FileStream(@"D:\BaiduYunDownload\45.avi",FileMode.OpenOrCreate)) { using (Stream

Git操作(基础篇)

Git操作(基础篇) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git的读音为/g?t/.Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上.怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以"克隆"这个原始版

Windows下常用的100个CMD指令以及常见的操作

Windows下常用的100个CMD指令以及常见的操作 常用的100个CMD指令 gpedit.msc-–组策略 2. sndrec32---录音机 3. Nslookup---IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具. 它在 Windows NT/2000/XP 中均可使用 , 但在 Windows 98 中却没有集成这一个工具. 4. explorer---打开资源管理器 5. logoff---注销命令 6. shutdown---60秒倒计时

关于js的一些关键知识点(call,apply,callee, caller,clourse,prototypeChain)

可能不少学习javascript在使用call,apply,callee时会感到困惑,以下希望对于你有所帮助: 1.~~~call ,apply是函数(函数对象)的方法:callee是函数arguments对象的属性 引用函数自身 2.~~~call,apply改变上下文对象this的指向 3.~~call apply方法让函数作为另一个对象的方法被调用 4.~~ apply方法只能接受数组作为参数 >> call f.call(o,1,2) 等同于o.m = f;o.m(1,2);例1:fu