git-本地操作

一、新建git仓库

方式一:git init

这种方式建立一个裸仓

例如我们在d盘新建一个文件夹,然后输入git bash命令

git init practiceOne 我们新建了一个空仓

cd practiceOne/.git/ 进入git配置目录

ls我们可以看到该目录下相关的git配置文件

方式二:git clone XXXX

这种方式通过拷贝一个远程仓库来新建一个本地git仓库。

二、git基本命令

2.1 git add:将文件添加到暂存区里头

例如:

git add fileA 【多个文件中间空格隔开】
git add -A 【把整个工作区里头的文件提交到暂存区】git add . 和上一个命令一样作用

2.2 git commit:将暂存区里头的文件提交到历史记录区【也就是远程终端】

例如:

git commit -m "commit fileA"

2.3 git status:查看三个区的历史状态

2.4 git rm:删除工作区里头的文件

例如:

git rm fileA

删除缓存区里头的文件:

git rm --cached fileA

2.5 git reset:还原删除的文件

例如:

git reset HEAD fileA

2.6 git mv:重命名或者移动文件

例如:

git mv fileA fileB 【将工作区和暂存区里头的fileA文件重命名为fileB】

2.7 gitignore 这些文件将不被提交

*.[oa]           //以o或者a结尾的文件不会被提交

!test.pyc        //之前如果被忽略,现在要重新提交则在前面加!

\!test.pyc       //本身如果是!开头的文件,那就要在前面加个
foo/或者src/     //以/结尾的代表匹配某个目录。

**/res           //匹配所有res目录

三、Git 本地分支与合并

3.1 git branch 新建一个分支

例如:

git branch feature 

或者也可以通过

git checkout -b feature命令,创建分支并且切换到这个分支。

删除一个分支:

git branch -D feature

3.2 git tag  给新的分支标记

当一个文件修改多次的时候需要给这个文件打上tag:

例如:

通过以下命令可以查看分支以及相关的提交记录

git log --oneline --decorate --graph --all

我们要给7ee67a0打上一个V0的版本tag,这个时候就可以输入两种命令:

git tag "V0" 7ee67a0    //创建tag
git tag -a "another" 7ee67a0    //创建副注tag

然后再查看下引用可以看到已经打上了tag了。

区别在于git tag -a "another" -m "another tag"

多了副注信息。

3.3 git checkout  切换分支

git checkout feature 切换到feature分支

3.4 git stash

当不同分支都修改同一个文件,已经提交到缓存区但是没有提交历史记录区,也就是执行了git add 没有执行git commit操作,这个时候使用checkout就会报冲突,要先提交修改的部分。

这个时候可以通过git stash命令保存不同发分支文件。

例如:现在feature分支修改master里头的的一个master.txt文件并添加到缓存区,切换回master分支的时候,

这时会提示有内容修改,要么提交要么缓存一下。

这个时候执行stash命令然后再切换回master分支,这时候就不报错了。

git stash save -a "stash1"

查看master分支下的master.txt文件还是原来master分支的。

这个时候查看分支情况:

stash是unracked 状态,说明在修改的内容只是暂时存在stash里头没有存在暂存区。

通过git stash drop --index [email protected]{0}来丢弃刚才的暂存内容。查看分支:

切换回feature分支,通过git stash list 可以查看有哪些stash。

通过git stash pop --index [email protected]{0}或者git stash pop stash{0}恢复进度

git stash apply[--index] [<stash>] 不删除已恢复的进度,其他同git stash pop
git stash drop[<stash>] 删除某一个进度,默认删除最新进度
git stash clear删除所有进度
git stash branch <branchname> <stash>基于进度创建分支 

3.5 git merge 合并分支

git merge合并分支,可以合并由分支衍生出来的分支,
git merge --abort取消分支合并。

 四、查看与历史比对

4.1 git log 查看日志信息

例如:

git log --oneline --decorate --graph --all 可以查看历史分支,提交信息

4.2 git show 显示是git 对象信息

例如:

git show master | --format=%T master^2【表示master底下的第二个副提交】等等。

4.3 git diff  输出工作区与暂存区之间的差异

也可以有其他组合

例如:

git diff --color-words
git diff --word-diff 等等

4.4 git diff --cached 查看暂存区与历史记录去的差异

五、撤销修改

5.1 git checkout 除了创建|切换分支,还可以恢复分支

例如:

git checkout -- XXX文件

或者可以从某一个历史提交里头恢复文件

git checkout XXX记录 -- XXX要覆盖的文件

5.2 git reset 撤销之前的修改

例如:

git reset HEAD

如果该分支是在HEAD指向的分支上,则可以用:git reset XXX文件名

git reset xxx记录 -- xxx要覆盖的文件,可以将暂存区恢复到xxx记录。

5.3 git clean 

例如:

git clean -n
接着输入git clean -f就可以去掉不需要的文件了。

git clean -n默认不去清除ignore里头的文件。

若要清除,可输入:git clean -X -f

5.4 git revert 产生一个新的提交覆盖之前的提交

常见问题:

1、Not a valid object name: ‘master‘.错误

想新建立一个分支时出现这错误。要先commit一次才会真正建立master分支,此时就可以新建立分支了。

时间: 2024-11-05 17:22:05

git-本地操作的相关文章

Git大法好——2.Git本地操作指令详解

Git大法好--2.Git本地操作指令详解 引言 上节给大家讲解了有关于Git的一些概念,Git的引入,Git的四个组成部分,Git文件的状态,以及 Git的下载安装:前面也讲过Git和SVN有个明显的差别就是,Git可以不需要网络就可以进行版本 控制,这是因为Git中每个电脑都拥有一个本地的版本库,而远程的仓库仅仅是作为我们交换修改 的一个工具!即使失去这个工具,我们也可以干活,只是交换修改不方便罢了,假如是SVN,远程 服务器挂了-所以,我们使用Git的时候大部分时间都是在进行Git的一些本

git本地操作

01. GIT简介(PPT) ================================================================================ 02. GIT命令行帮助 ================================================================================ $ svn help 查看svn所有命令的帮助 $ svn help 子命令 # 要退出帮助信息,按"q" #

Git本地操作相关介绍

本地使用git时遇到问题及解决方案总结: 1.git push origin master 后,终端上出现错误信息: push失败,原因多半是因为github上远程仓库中有Reademe.md文件 解决方法:先 git pull --rebase origin master 或者 git pull origin master后,再进行git push origin master 2.git remote rm origin 取消本地仓库与远程仓库的关联 3.git remote add orig

Git的本地操作--上(不会使github远程仓库发生任何改变)

1.先弄清楚git与github的关系 Git是最流行的分布式版本控制系统:[SVN,CVS这些版本控制系统,是集中式的,集中式的版本控制系统不但速度慢,而且必须联网才能使用.当然,Git的优势不单是不需要联网,Git极其强大的分支管理,也把SVN等抛在了千里之外] GitHub网站为开源项目免费提供Git存储,无数开源项目都托管在GitHub上,包括jQuery,PHP,Ruby等等. 可以简单的理解成: Git是一个管理代码的本地工具软件:github是托管代码的网站平台(可以托管团队里多个

Git远程操作详解

Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解.同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值. 一.git clone 远程操作

Git 本地仓库(Repository)详解

大纲: 一.前言 二.概述 三.在Windows上安装Git 四.创建本地仓库 五.本地仓库管理详解 六.总结 注,测试机 CentOS 5.5 x86_64,Git 服务器版本:git version 1.8.2.1,客户端版本:git version 1.9.2.msysgit.0.所有软件请到这里下载:http://msysgit.github.io/. 一.前言 本来呢,其实呢.我以为Git也就几个命令,没什么难的.于是就到网上找了些文章看看,发现这些文章难得不知道该说什么好.不是简单的

git 入门操作指令

git add [commit file list] 将已经修改的代码添加索引 git commit -m [commit message] 将已经索引的代码修改提交至本地的库 git push origin [branch_name] 将分支 branch_name 的代码推送至服务器 git pull origin [branch_name] 获取分支 branch_name上的最新代码 git pull --rebase origin [branch_name] 将当前 branch 从

Git 更新操作

修改现有函数 Tom 执行克隆操作后,看到新的文件string.c,他想知道这个文件到存储库?目的是什么?于是,他执行 git 日志命令. [[email protected] ~]$ git clone [email protected]:project.git 上面的命令会产生以下结果. Initialized empty Git repository in /home/tom/project/.git/ remote: Counting objects: 6, done. remote:

git 常用操作集锦

创建仓库 新建普通仓库: [email protected]:~/workspace/git$ git init Reinitialized existing Git repository in /home/jxdong/workspace/git/.git/ 新建 bare 仓库: [email protected]:~/workspace/git.git$ git init --bare Initialized empty Git repository in /home/jxdong/wor

【Git】Git远程操作详解

Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解.同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值. 一.git clone 远程操作