git常用命令

1.git init:git init命令创建一个新的Git仓库。它用来将已存在但还没有版本控制的项目转换成一个Git仓库,或者创建一个空的新仓库。

git init

将当前的目录转换成一个Git仓库。它在当前的目录下增加了一个.git文件夹,于是就可以开始记录项目版本了。

git init

在指定目录创建一个空的Git仓库。运行这个命令会创建一个名为directory,只包含.git子目录的空文件夹。

git init --bare

初始化一个裸的Git仓库,但是忽略工作目录。共享的仓库应该总是用--bare标记创建(见下面的讨论)。一般来说,用—bare标记初始化的仓库以.git结尾。比如,一个叫my-project的仓库,它的空版本应该保存在my-project.git目录下。

2.git clone:git clone命令拷贝整个Git仓库。这个命令就像svn checkout一样,除了”工作副本“是一个完备的Git仓库——它包含自己的历史,管理自己的文件,以及环境和原仓库完全隔离。

git clone

将位于的仓库克隆到本地机器。原仓库可以在本地文件系统中,或是通过HTTP或SSH连接的远程机器。

例子:(1)git clone ssh://john@example.com/path/to/my-project.git

            (2) git clone ssh://git@172.16.33.3:9422/home/gitrepo/ios.git

          (3)git clone git@192.168.45.4:/home/gitrepo/w3cschoolcc.git

          (4)git clone https://github.com/wsswdl/wsswdl.github.com.git

3.git config:git config命令允许你在命令行中配置你的Git安装(或是一个独立仓库)。这个命令定义了所有配置,从用户信息到仓库行为等等。

4.git add:git add命令将工作目录中的变化添加到缓存区。它告诉Git你想要在下一次提交时包含这个文件的更新。但是,git add不会怎么影响你的仓库——在你运行git commit前更改都不会被记录。

5.git commit:git commit命令将缓存的快照提交到项目历史。

git commit --amend

合并缓存的修改和上一次的提交,用新的快照替换上一个提交。缓存区没有文件时运行这个命令可以用来编辑上次提交的提交信息,而不会更改快照。

6.git status:git status命令显示工作目录和缓存区的状态。你可以看到哪些更改被缓存了,哪些还没有,以及哪些还未被Git追踪。status的输出 不会 告诉你任何已提交到项目历史的信息。如果你想看的话,应该使用git log命令。

7.git log:git log 命令显示已提交的快照。你可以列出项目历史,筛选,以及搜索特定更改。git status 允许你查看工作目录和缓存区,而git log只作用于提交的项目历史。

git log

使用默认格式显示完整地项目历史。如果输出超过一屏,你可以用空格键来滚动,按q退出。

git log -n

用限制提交的数量。比如git log -n 3只会显示3个提交。

git log --oneline

将每个提交压缩到一行。当你需要查看项目历史的上层情况时这会很有用。

git log --stat

除了git log信息之外,包含哪些文件被更改了,以及每个文件相对的增删行数。

git log -p

显示代表每个提交的一堆信息。显示每个提交全部的差异(diff),这也是项目历史中最详细的视图。

8.git checkout:切换分支。

9.git revert:git revert命令用来撤销一个已经提交的快照。它是通过搞清楚如何撤销这个提交引入的更改,然后在最后加上一个撤销了更改的  提交,而不是从项目历史中移除这个提交。这避免了Git丢失项目历史,这一点对于你的版本历史和协作的可靠性来说是很重要的。

git revert

生成一个撤消了引入的修改的新提交,然后应用到当前分支。

10.git reset:

git reset

从缓存区移除特定文件,但不改变工作目录。它会取消这个文件的缓存,而不覆盖任何更改。

git reset

重设缓冲区,匹配最近的一次提交,但工作目录不变。它会取消所有文件的缓存,而不会覆盖任何修改,给你了一个重设缓存快照的机会。

撤销(revert)和重设(reset)对比

撤销和重设相比有两个重要的优点。首先,它不会改变项目历史,对那些已经发布到共享仓库的提交来说这是一个安全的操作。至于为什么改变共享的历史是危险的,请参阅git reset一节。

其次,git revert可以针对历史中任何一个提交,而git reset只能从当前提交向前回溯。比如,你想用git reset重设一个旧的提交,你不得不移除那个提交后的所有提交,再移除那个提交,然后重新提交后面的所有提交。不用说,这并不是一个优雅的回滚方案。

11.git clean:git clean命令将未跟踪的文件从你的工作目录中移除。

12.git rebase:是将分支移到一个新的基提交的过程。从内容的角度来看,rebase只不过是将分支从一个提交移到了另一个。但从内部机制来看,Git是通过在选定的基上创建新提交来完成这件事的——它事实上重写了你的项目历史。理解这一点很重要,尽管分支看上去是一样的,但它包含了全新的提交。

13.git merge:分支合并

将master分支合并到feature分支最简单的办法就是用下面这些命令:

git checkout feature

git merge master

14.git remote:git remote命令允许你创建、查看和删除和其它仓库之间的连接。远程连接更像是书签,而不是直接跳转到其他仓库的链接。它用方便记住的别名引用不那么方便记住的URL,而不是提供其他仓库的实时连接。

git remote

列出你和其他仓库之间的远程连接。

git remote add

创建一个新的远程仓库连接。在添加之后,你可以将作为便捷的别名在其他Git命令中使用。

git remote rm

移除名为的远程仓库的连接。

git remote rename

将远程连接从重命名为。

15.git fetch:git fetch命令将提交从远程仓库导入到你的本地仓库。拉取下来的提交储存为远程分支,而不是我们一直使用的普通的本地分支。你因此可以在整合进你的项目副本之前查看更改。

16.git pull:在基于Git的协作工作流中,将上游更改合并到你的本地仓库是一个常见的工作。我们已经知道应该使用git fetch,然后是git merge,但是git pull将这两个命令合二为一。

17.git push:Push是你将本地仓库中的提交转移到远程仓库中时要做的事。它和git fetch正好相反,fetch将提交导入到本地分支,而push将提交导出到远程分支。它可以覆盖已有的更改,所以你需要小心使用。

18.git branch:

列出分支:git branch

删除分支:git branch - d

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

推荐阅读更多精彩内容

  • 配置 首先是配置帐号信息 ssh -T git@github.com#登陆github 修改项目中的个人信息 1 ...
    rochuan阅读 711评论 1 1
  • 配置 首先是配置帐号信息ssh -T git@github.com # 登陆 github 修改项目中的个人信息 ...
    guanguans阅读 720评论 0 3
  • git config —global user.name “Nshen” //必须git config —glob...
    困卡阅读 361评论 1 9
  • 这座城市的风很大,你总是很晚回家,愿你,每一次走进深夜的暮色,都有一盏暖灯等你晚归
    圆角状态阅读 238评论 0 0
  • 贺乔迁:新屋一住燕归来, 几度春秋豪宅开。 一路拼搏成就带, 高朋满座乐开怀。
    寒梅热血阅读 230评论 0 0