Git的基本用法

Git配置

设置你的名字和email,这是commit时的签名
git config --global user.name "username"
git config --global user.email "your email address"

获得一个Git仓库

一种从已有的Git仓库中clone(克隆,复制)
一种新建一个仓库,把未进行版本控制的文件进行版本控制

clone一个仓库

为了得到一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能以ssh://, http(s)://, git://. 有些仓库可以通过不只一种协议来访问。
git clone https://
你就会在本地发现这个克隆的仓库

初始化一个新的仓库

初始化Git仓库
git init

Git基本流程

1.创建或修改文件
2.使用git add命令添加新创建或修改的文件到本地的缓存区(Index)
3.使用git commit命令提交到本地代码库
4.(可选,有的时候并没有可以同步的远端代码库)使用git push命令将本地代码库同步到远端代码库

1.创建或修改文件

在版本库的目录下自行创建。
可以使用git status查看当前git仓库状态

2.使用git add 加入缓存区

git add filename
或者可以
git add .
此时你现在为commit做好了准备,你可以使用 git diff 命令再加上 --cached 参数,看看缓存区中哪些文件被修改了。进入到git diff --cached界面后需要输入q才可以退出

3.使用git commit提交修改

当所有新建,修改的文件都被添加到了缓存区,我们就要使用git commit提交到本地仓库
git commit -m "注释"
下面命令可以使得没有加到缓存区的修改一起提交 , 但加上-a不会添加新建的文件
git commit -a -m "注释"
git rm命令删除文件后会自动将已删除文件的信息添加到缓存区

如果我们希望本地仓库关联到远端服务器,我们可以使用git remote命令
git remote add origin 远程仓库地址
如果本地的仓库连接到远程Git服务器, 可以使用下面命令将本地仓库同步到远程服务器
git push origin master

分支与合并

Git 的分支可以让你在主线(master分支)之外进行代码提交,同时又不会影响代码库主线。分支的作用体现在多人协作开发中,比如一个团队开发软件,你负责独立的一个功能需要一个月的时间来完成,你就可以创建一个分支,只把该功能的代码提交到这个分支,而其他同事仍然可以继续使用主线开发,你每天的提交不会对他们造成任何影响。当你完成功能后,测试通过再把你的功能分支合并到主线。

1.创建分支

git branch newbranchname
可以使用git branch命令来产看当前的分支列表

2.切换分支

git checkout 分知名可以切换到其他分支

3.合并分支

可以使用git merge合并分支到主线
git merge -m "注释" branchname

4.删除分支

git branch -d branchname
但是它只能删除那些已经被当前分支的合并的分支,如果要强制删除某个分支的话就用git branch -D

5.撤销一个合并

如果你觉的你合并后的状态是一团糟,你可以使用
git reset --hard HEAD^
回到合并之前的状态

6.快速向前合并

还有一种需要特殊对待的情况,在前面没有提到。通常,一个合并会产生一个合并提交(commit), 把两个父分支里的每一行内容都合并进来。

但是,如果当前的分支和另一个分支没有内容上的差异,就是说当前分支的每一个提交(commit)都已经存在另一个分支里了,git 就会执行一个“快速向前"(fast forward)操作;git 不创建任何新的提交(commit),只是将当前分支指向合并进来的分支。

Git日志

查看日志

git log命令可以显示所有的提交(commit):

git log

如果提交的历史纪录很长,回车会逐步显示,输入q可以推出。
git log有很多选项,可以使用git help log查看。
会时间顺序显示相关的提交commit。

日志统计

如果用--stat选项使用git log,它会显示在每个提交commit中那些文件被修改,添加或删除了多少行内容

git log --stat

格式化日志

你可以按你的要求来格式化日志输出,--pretty参数可以使用诺干个表现格式
online

git log --pretty = oneline 

short

git log --pretty = short

你可以用medium , full , fuller, email或raw。如果这些格式不完全符合你的需求,你也可以用--pretty = format参数定义格式
--graph选项可以可视化你的提交图(commit graph),会用ASCLL字符来画出一个很漂亮的提交历史(commit history)线:

git log --graph --pretty = oneline

日志排序

日志记录可以按不同的顺序来显示。如果你要指定一个特定的顺序,可以为git log命令添加顺序参数

按默认情况,提交会按你时间顺序显示,可以指定--topo-order参数,让提交按拓扑顺序来显示(就是子提交)

$ git log --pretty=format:'%h : %s' --topo-order --graph

可以用--reverse参数来你想显示所有提交日志

git config:配置相关信息
git clone:复制仓库
git init:初始化仓库
git add:添加更新内容到索引中
git diff:比较内容
git status:获取当前项目状况
git commit:提交
git branch:分支相关
git checkout:切换分支
git merge:合并分支
git reset:恢复版本
git log:查看日志

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

推荐阅读更多精彩内容

  • Git的配置 在使用Git之前需要设置用户名和用户email。这些是提交代码的签名,每次的提交记录例都会包含这些信...
    快把节操捡起来阅读 322评论 0 0
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,663评论 4 54
  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,511评论 0 13
  • 本人女汉子一枚,真真切切,彻头彻尾,从名字到内在,从小到大,女汉子的性格锻造了我骑单车载妹子的各种传奇。 杰哥我搭...
    Chinesejessica阅读 360评论 1 0
  • 被恐怖片吓得半死 点开短信 想给你讲讲 仔细想想发了也不会回复 还是静静地听听歌可能效果会更好
    猫命cc阅读 118评论 0 1