git 项目创建常用命令

git reset HEAD

取消暂存的文件,暂存区的目录树会被重写,被master分支指向的目录树所替换,工作区不受影响。


git rm --cached

直接从暂存区删除文件,工作区则不做出改变。


git checkout或者git checkout--

会用暂存区全部或指定的文件替换工作区的文件。


git checkout HEAD或者git checkout

HEAD <file>

会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。


git reset --hard HEAD^

版本回退(或某一次的commit id)


git reset HEAD~1

最近一次提交放回暂存区, 并取消此次提交


git reflog

记录你每一次的命令。


git add <file>

暂存(跟踪)一个新文件

对每个文件使用git add命令来将其标记为冲突已解决。一旦暂存这些原本有冲突的文件,Git就会将它们标记为冲突已解决。


git status

查看哪些文件处于什么状态。


git status -s或git status--short

更为紧凑的格式输出。


git diff

想知道具体修改了什么地方。

将通过文件补丁的格式显示具体哪些行发生了改变。


git diff --cached

查看已暂存的将要添加到下次提交里的内容。


git commit -m

提交更新。


git commit -a -m

自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过git add。


git commit --amend

有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。


git rm

从暂存区域移除文件。


git rm-f

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。


git rm--cached

我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中,使用--cached选项。


git mv file_from file_to

移动文件。

$ mv README.md README

$ git rm README.md

$ git add README


git log

回顾下提交历史。

-p:按补丁格式显示每个更新之间的差异。

--stat:显示每次更新的文件修改统计信息。

--shortstat:只显示 --stat 中最后的行数修改添加移除统计。

--name-only:仅在提交信息后显示已修改的文件清单。

--name-status:显示新增、修改、删除的文件清单。

--abbrev-commit:仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。

--relative-date:使用较短的相对时间显示(比如,“2 weeks ago”)。

--graph:显示ASCII图形表示的分支合并历史。

--pretty:使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。


git log --pretty=format 常用的选项

%H:提交对象(commit)的完整哈希字串

%h: 提交对象的简短哈希字串

%T:树对象(tree)的完整哈希字串

%t:树对象的简短哈希字串

%P:父对象(parent)的完整哈希字串

%p:父对象的简短哈希字串

%an:作者(author)的名字

%ae:作者的电子邮件地址

%ad:作者修订日期(可以用 --date= 选项定制格式)

%ar:作者修订日期,按多久以前的方式显示

%cn:提交者(committer)的名字

%ce:提交者的电子邮件地址

%cd:提交日期

%cr:提交日期,按多久以前的方式显示

%s:提交说明


-(n):仅显示最近的 n 条提交

--since, --after:仅显示指定时间之后的提交。

--until, --before:仅显示指定时间之前的提交。

--author:仅显示指定作者相关的提交。

--committer:仅显示指定提交者相关的提交。

--grep:仅显示含指定关键字的提交

-S:仅显示添加或移除了某个关键字的提交


git log --pretty=format:"%h %s"--graph



ssh-keygen -t rsa -C"youremail@example.com"

三次回车即可生成ssh key

可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥。


git remote add origingit@gitee.com:whiteblue1216/TestGit.git

添加远程仓库(git给远程库起的默认名称是origin)


git remote -v

查看远程库信息


git clone -o [remote-name]

默认的远程分支名字将会是remote-name/master。


git push [remote-name] [branch-name]

推送远程仓库


git remote show [remote-name]

查看远程仓库


git remote rename pb paul

将 pb 重命名为 paul,值得注意的是这同样也会修改你的远程分支名字。 那些过去引用 pb/master 的现在会引用 paul/master。


git remote rm paul

移除远程仓库


git tag

列出标签


git tag -l 'v1.8.5*'

查找具体标签


git tag v1.0

创建轻量级标签


git show v1.4 -lw

查看标签


git tag -a v1.4 -m 'my version 1.4’

-m选项指定了一条将会存储在标签中的信息。如果没有为附注标签指定一条信息,Git会运行编辑器要求你输入信息。


git tag -a v1.2 commitid

对历史版本打标签


git push [remote-name] [tag-name]

如果想要一次性推送很多标签,也可以使用带有--tags选项。这将会把所有不在远程仓库服务器上的标签全部传送到那里。


git checkout -b [branch-name][tag-name]

在特定的标签上创建一个新分支


git tag -d v0.9

删除标签


git push origin :refs/tags/v0.9

删除远程标签


git branch [branch-name]

创建分支

-b新建一个分支并同时切换到那个分支上。


git log --oneline --decorate

查看各个分支当前所指的对象。


git checkout [branch-name]

切换分支,这样 HEAD 就指向 branch-name 分支了


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

查看分叉历史,它会输出你的提交历史、各个分支的指向以及项目的分支分叉情况。


git merge [branch-name]

将[branch-name]合并到你当前所在的分支。


git merge --no-ff -m "yourcommit message" [branch-name]

禁用Fast-forward,生成一个新的commit,这样从分支历史上就可以看出分支信息。


git branch -d hotfix

删除分支


git branch

查看所有分支列表

-v查看每一个分支的最后一次提交

--merged与--no-merged这两个有用的选项可以过滤这个列表中已经合并或尚未合并到当前分支的分支。


把尚未提交的内容藏匿起来

$ git stash


# 查看藏匿区

$ git stash list


# 从藏匿区恢复(但是恢复后,stash内容并不删除)

$ git stash apply


# 删除藏匿区

$ git stash drop


# 从藏匿区恢复(同时删除)

$ git stash pop


git push [remote-name] [branch-name]

推送到远程仓库


git push originserverfix:awesomebranch

将本地的 serverfix 分支推送到远程仓库上的awesomebranch 分支


git fetch origin

这个命令查找“origin” 是哪一个服务器,从中抓取本地没有的数据,并且更新本地数据库,但不会merge(它并不会修改工作目录中的内容。它只会获取数据然后让你自己合并。大多数情况下它的含义是一个git fetch 紧接着一个git merge命令。)

git checkout -b [branch][remote-name]/[branch-name]

$ git checkout --track[remote-name]/[branch-name]

设置本地跟踪分支


git branch -u origin/serverfix

-u或--set-upstream-to

修改本地分支的上游分支


git branch -vv

查看分支跟踪信息


git pull

查找当前分支所跟踪的服务器与分支,从服务器上抓取数据然后尝试合并入那个远程分支。(git pull = git fetch + git merge)


git push origin --delete serverfix

删除远程分支

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git b...
    猿万阅读 5,028评论 1 45
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,449评论 1 26
  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,855评论 5 147
  • 故事的开头就是那么似曾相识,总会是一方不经意的动心,而后心有所向。 有言道:前世五百次的回眸,换来今世的相识一笑。...
    安暖如夏m阅读 1,024评论 14 14
  • 没一朵木棉花会唱歌 深夜的过客不知道是谁 南方的城市有自己的报纸 每一辆车都有它的旅客 而我穿越斯年之近 在尘埃里...
    泛指烨阅读 85评论 0 1