三分钟教你学Git(二)之命令索引

记住这三个概念,工作区(Working Area),暂存区(Stage),版本库,通过add,工作区的变化到暂存区,通过commit暂存区的变化到本地版本库,通过push本地版本库的变化到远程版本库。下面是常用的命令。

保存进度恢复工作进度

#把工作区和暂存区的内容保存到进度列表里

git stash save “description”

#列出stash里的所有项

git stash list

#把进度恢复出来并删除进度列表中的项

git stash pop

#只把进度恢复出来,不删除进度列表中的项

git stash apply

#丢弃进度列表中的相关项

git stash drop

查看变化

#暂存区与工作区相比较的变化

git diff

#版本库和工作区相比较的变化

git diff head

#版本库和暂存区相比较的变化

gti diff -cached

提交变化

#把工作区中文件fielname的变化提交到暂存区

git add filename

#把本地文件的变更(修改,删除)保存到暂存区

git add -u

#把本地文件的变更(修改,删除,新增)保存到暂存区

git add -A

#交互式命令

git add -i

#把暂存区的变化提交到版本库

git commit

#把版本库提交到远程仓库

git push

恢复内容从版本库或暂存区到暂存区或工作区

#把暂存区的内容覆盖到当前工作区

git checkout -- filename

#切换分支

git checkout hongchangfirst/vice

查看日志

git log --graph --oneline --decorate

查看当前状态

git status

重置已有提交

#改变master的指向,也替换暂存区和工作区

git reset --hard

#只改变master的指向

git reset --soft

#只改变master的指向和暂存区的内容,但不改变工作区的内容

git reset

git reset --mixed

里程碑

#对某一次提交建立一个标签

git tag -m “description” old_milestone

删除文件

#只在工作区中删除

rm filename

版本克隆与同步

git clone repository workingdirectory

git pull=git fetch + git merge

git push

清理(无引用的)悬挂的松散对象

#查看悬挂松散对象

git fsck

#清理悬挂松散对象

git prune

创建分支,切换到分支上

#创建分支

git branch branchone

#切换到分支上

git checkout branchone

#创建分支branchone并切换到其上

git checkout -b branchone

#删除分支

git branch -d branchone

查看哪些提交领先于远程版本

git cherry

git的文件忽略(.gitignore)只对未入库的文件起作用。

git对象库的四类对象:commit,blob,tag,tree

原文:http://blog.csdn.net/hongchangfirst/article/details/8276502

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst

三分钟教你学Git(二)之命令索引,码迷,mamicode.com

时间: 2024-10-12 16:47:13

三分钟教你学Git(二)之命令索引的相关文章

三分钟教你学Git (四)之紧急救助

如果你不小心git reset --hard HEAD^ 然后这个commit又没有在别的git仓库中,怎么办?是不是这次修改就丢了呢? 当然不是,git为我们每次都历史都保留了reference log 如下: $ git commit -A -m "hongchangfirst commit" 你现在看git的历史记录,你可以看到两次提交: $ git log * d1f3fg5 (HEAD, master) hongchangfirst commit 现在让我们来重置回第一次提交

三分钟教你学Git (一)之技巧

先来看看几个比较有用的技巧 git stash 将工作区中的状态保存到栈中,供以后apply/pop.可以把它理解为一个commit,但是是存在另一个仓库里的. git reset --hard 将暂存区,工作区,版本库都恢复到某一次提交的状态 --soft 暂存区和工作区都不变,只改变版本库的状态 --mixed (默认) 将版本库和暂存区都改变,不改变工作区 如果在commit之后进行push,发现别人在你之前做了push,这时应该怎么办呢? git reset --mixed HEAD^

三分钟教你学Git (一)之模型

Git是版本控制工具,类似于SVN的作用.这里就忽略掉怎么安装之类的,只讲解Git最重要的思维模型.这三个概念一定要清楚: 1 工作区(Working Area) 2 暂存区(Stage) 3 版本库(repository, 本地仓库和远程仓库) 工作区很简单,就是你修改代码时会立即体现的地方. 暂存区是Git的特色之一,这个概念不好理解,这里举一个例子说明.如我们领到了一个任务,任务是修改两个bug.你可以把这两个bug分开提交,也可以合并到一次提交上.假如我们需要合并到一次提交时而我们又没有

三分钟教你学Git (十) - bad object HEAD错误

有时候进入到Git仓库执行命令: git status 显示: fatal: bad object HEAD 直接: git pull origin hongchangfirst 将远程分支的内容重新sync下来即可. 原文:http://blog.csdn.net/hongchangfirst/article/details/45312317 作者:hongchangfirst hongchangfirst的主页:http://blog.csdn.net/hongchangfirst

三分钟教你学Git(十二) 之 fast-forward

什么是fast forward, 顾名思义,就是快速向前进,Git怎么做到快速的呢? 原来如果Git判定可以fast forward的时候,直接修改当前HEAD指针的指向然后再修改当前HEAD指针,说白了就是修改两个指针的指向,而并没有生成新的commit对象. 所以当你修改了其中的一个branch中的某个commit的时候,另一个branch如果也引用了此commit,则这个branch会很意外的出现变化,因为引用的是同一个commit对象. 所以一般有几种方法: 1 --no-ff 显示告诉

三分钟教你学Git (十一) 之 集合运算

1 差集 有时候使用Git的时候我们想对比两个branch有哪些不同,比如发code review的时候,如果能有一个命令可以给我们展示两个branch的不同,即差集,那将会很方便. Git有double dot语法可以做这个事情: git log master..hongchangfirst_branch 它会将所有在hongchangfirst_branch分支里而不在master分支里的所有commit列出来,这样我们就可以很容易的知道两个branch的差异. 如果想查看所有在master

三分钟教你学Git(十七) - 钩子

Git能够定制一些钩子,这些钩子能够在特定的情况下被运行,分为Client端的钩子和Server端的钩子.Client端钩子被operation触发,比方commit,merge等,Server端钩子被网络动作触发,比方pushed commits. 那么钩子是放在哪的呢? 在.git/hooks/目录下.当你init一个仓库的时候,下边会有一些钩子的样例.以.sample结尾. 那么钩子什么时候被运行,Git提前定义了触发时机: ClientSide hooks: 1 pre-commit,当

三分钟教你学Git(十三) - 二分查找

比方说你收到了错误报告,然后你知道前几天明明是好的.可是这几天有好多新的commit被部署了.那么我们怎么迅速的找到第一个引入Bug的commit呢? 我们能够使用git bisect,git利用二分查找法迅速找到第一个坏的commit,下边看看详细怎么用就明确了. 我们首先告诉git我们要開始binary search了. # git bisect start 然后我们告诉git当前的commit是一个坏的提交. #git bisect bad 然后我们再告诉git我们已知的一个好的提交,这样

三分钟教你学Git (五)之 查询历史

我们知道查询历史是 git log 如果想要漂亮点可以这样: git log --graph --decorate 如果我们想查看历史提交之间的变化怎么办呢? git log -p -2 -p的意思是说显示diff结果,-2的意思是只显示前两个commit的变化 默认的diff都是以行为单位的,如果我们想要以单词为单位,怎么办呢? git log -p -2 --word-diff 如果我们只想查看历史提交都改变了哪些文件,怎么办呢? git log --stat 另外还有很多参数,可以git