git 本地操作

2015年08月27日 星期四 23时32分40秒

工作区(working space)----->暂存区(staging)---->本地仓库(Local Repository)----->远程仓库(Remote Repository)

已修改为跟踪------>已跟踪未提交------->已提交未发布


git status :

查看当前分支文件状态

是否有已修改未暂存的文件,有的话用 git add 命令暂存。

是否有已暂存未提交的文件,有的话用git commit -m " " 命令提交。


git branch :

查看本地分支情况

总共有那些分支,当前处于那个分支

git branch -d +分支名:

删除分支。


git add :

git add . :

添加已修改未暂存的所有文件,也就是跟踪所有文件。未跟踪的文件标记为红色,已跟踪的文件标记为绿色。

git add + 文件:

添加指定的已修改未暂存的文件到暂存区。


git commit -m " " :

提交代码到本地仓库,-m 中的m是message的意思,就是添加一个标记信息,方便查看提交历史,git log 可以查看代码提交日志。


git log:

如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者、提交日期、和提交说明。

按q退出历史记录列表。

git log -n:

以选择显示前n条。

git log --stat -n

显示简要的增改行数统计,每次提交文件的变更统计,-n 同上,前n条,可省略。

git log -p -n

此命令同上,不过显示更全了。

git log --pretty=oneline

一行显示,只显示哈希值和提交说明。

gig lot --graph

ASCII 字符串表示的简单图形,形象地展示了每个提交所在的分支及其分化衍合情况

如两天前的提交历史:git log --since=2.days

如指定作者为"BeginMan"的所有提交:$ git log --author=BeginMan

如指定关键字为“init”的所有提交:$ git log --grep=init

如指定提交者为"Jack"的所有提交:$ git log --committer=Jack

注意作者与提交者的关系:作者是程序的修改者,提交者是代码提交人。

如指定2天前,作者为“BeginMan”的提交含有关键字'init'的前2条记录:$ git log --since=2.days --author=BeginMan --grep=init -2

注意:上面选项后面的参数可以带单双引号,如--author="BeginMan"


git checkout :

git checkout +分支名:

切换到指定的分支

git checkout -b + 分支名:

新建一个分支并切换到该分支,-b就是分支的意思,切换分支,没有的话就新建一个分支出来并切换到新分支,删除分支用 git branch -d +分支名。

git checkout + 文件名:

放弃对文件的修改,回到上次提交之后本次修改之前的原始状态。


git commit --amend:

合并提交,提交出错了,不用撤销,重新修改后合并提交。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

git reset :

git reset --soft HEAD^(SHA码):

回到上次提交前的状态,本地的修改和暂存区的跟踪都在。这是最柔软的退回。

git reset HEAD^:

git reset --mixed HEAD^:

上面两个命令是一样的,回到上次暂存时的状态,本地的修改还在,但是暂存区中的跟踪已经不再,提交也不在了。

git reset --hard HEAD^:

直接退回到上次提交的状态,本地修改什么的都不复存在了是最强硬的退回。

git reset:

git reset HEAD +文件名 :

add错了,从暂存区中删除,但保留更改,如果不加参数,代表删除所有暂存。

以上是本地操作

HEAD^代表本次提交的父提交,可以换成任意次提交的sha码


 <-----------------第一次提交-------------------->       <------------------第二次提交------------------->

已修改为跟踪->已跟踪未提交->已提交未发布—已修改为跟踪->已跟踪未提交->已提交未发布

你可能感兴趣的:(git 本地操作)