githup 基础学习

原创 2015年07月10日 00:16:12

# git 学习笔记

标签(空格分隔): githup git 版本控制


一、初始配置

配置用户信息

$ git config --global user.name "maoch"
$ git config --global user.email 1058678389@qq.com

查看所有配置信息命令

git config --list

获取帮助信息

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

二、githup基础命令

1、git初始化命令

//切换到所在目录,使用init
$ git init 

2、clone命令

$ git clone git://github.com/schacon/grit.git 项目名称

3、检查当前文件状态

$ git status

4、跟踪新文件(add命令),添加之前状态为“Untracked files”,添加后状态为“*Changes to be committed:”(译注:其实 git add 的潜台词就是把目标文件快照放入暂存区域,也就是 add file into staged area,同时未曾跟踪过的文件标记为需要跟踪。)

$ git add .  //使用‘.’表示全部文件
$ git add README //表示指定某一个文件

5、跟踪已经修改的文件:
在使用git status命令后,发现“Changes not staged for commit:”,更改了,但是还没有暂存,可以使用git add 命令,之后状态会变为“Changes to be committed:
6、忽略某些文件
创建一个名称为.gitignore 的文件,格式规范如下:

  • 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配。
  • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

7、查看已暂存和未暂存的更新
查看尚未暂存的修改文件已经暂存的文件:

$ git diff

若要看已经暂存起来的文件和上次提交时的快照之间的差异

git diff --staged

8、提交更新

$ git commit //这种方式会启动文本编辑器以便输入本次提交的说明 
$ git commit -m "Story 182: Fix benchmarks for speed"// 使用-m参数,直接提交更新说明
$ git log // 使用此命令查看提交的信息

9、跳过使用暂存区域,不需要git add命令,直接提交

$ git commit -a -m 'added new benchmarks'

10、移除文件
删除工作目录中的文件和暂存文件:

$ git rm

如果手工删除了,则使用git status命令后,会提示会出现Changes not staged for commit,最后还需要使用git rm命令删除文件
只删除暂存区域,不删除工作目录

$ git rm --cached readme.txt //后面可以列出文件或者目录的名字,也可以使用 glob 模式

删除之后的恢复:

git checkout HEAD -- index.html 
git checkout HEAD^ -- index.html

11、重命名文件

//如果是重命名文件,则只需要提供文件名即可
//如果是移动文件,file_to 则为目标目录
$ git mv file_from file_to

12、查看提交历史

$ git log -p -2 //-p:显示每次提交的内容差异,2-:则仅显示最近的两次更新
$ git log --oneline //使用一行显示查看提交的信息
$ git log --oneline --decorate --all
$ git log --oneline --decorate --all -10 --graph //显示最近10次提交,使用图形
//恢复操作
$ git revert 版本号

13、撤消操作

$ git commit --amend //修订已经提交
$ git reset HEAD <file>...//暂存撤销
$ git checkout -- <file>...//取消对文件的修改 

三、git分支操作

标签:分支:就是一个指针
1、创建新分支(实际上就是创建分支指正)

$ git branch testing // 创建testing分支

2、切换分支

$ git checkout testing //切换到testing分支

3、分支的新建与合并
新建并切换分支:

$ git checkout -b iss53 // 相当于执行$ git branch iss53 和 $ git checkout iss53 命令

合并分支:

//第一步:切换到主分支,
$ git checkout master 
//第二步:执行合并命令
$ git merge hotfix 
//合并完成后删除分支
$ git branch -d hotfix 

合并冲突解决
1、在合并时出现冲突

Automatic merge failed; fix conflicts and then commit the result.

查看哪些文件有冲突:

git status

解决冲突后,需要删除<<<<<<<,======= 和 >>>>>>>,这些行。解决所有冲突后,使用git add 命令,标记已经解决,暂存。

可以使用命令行工具解决冲突:
git mergetool

解决冲突完成后,再次使用

git status

4、分支管理

//查看所有分支,带*表明当前所在的分支
$ git branch
//查看分支的最后一个提交对象的信息
git branch -v
//查看已经合并的分支,没有*的可以删除
$ git branch --merged
$ git branch -d  来删除,因为已经合并了,删除不会有影响
//查看还未合并的分支,尚未合并的分支不能直接删除
$ git branch --no-merged

补充:

比较分支:
git diff master..otherBranch //比较两个分支:
git diff master..otherBranch index.html//表示比较两个分支的index.html文件
git branch list //查看分支列表
git branch -m oldBranchName newBranchName //重命名分支
git branch -d branchName //删除分支

5、利用分支进行开发的工作流程

6、远程分支
表示远程分支:

(远程仓库名)/(分支名),如:origin/master

获取远程分支的数据到本地:

git fetch origin

注意:在fetch操作下载远程分支后,仍无法编辑,不会自动创建新的分支。
如果需要合并远程分支到当前分支,可以运行:
git merge origin/serverfix
如果需要获取一份来开发,则可以在远程分支的基础上创建新分支(详细参考跟踪远程分支):
git checkout -b serverfix origin/serverfix

推送本地分支

git push (远程仓库名) (分支名) 如:git push origin serverfix

跟踪远程分支

跟踪分支 (tracking branch):远程分支checkout出来的分支。
git checkout -b [分支名] [远程名]/[分支名] 如:
git checkout -b serverfix origin/serverfix
在1.6.2 版本以上,可以使用:--track简化如:
$ git checkout --track origin/serverfix

在跟踪分支中,输入git push,git会自动判断应该向那个分支推送数据。
在跟踪分支中,输入git pull,会获取所有分支索引,并把数据合并到本地分支来。
删除远程分支
无厘头的语法:

git push [远程名] :[分支名]
例如:git push origin :serverfix

7、分支的衍合(rebase)


修改暂存:需要把当天的工作进度暂存。

    //使用此命令,进行暂存
    git stash
    git stash save '暂存工作进度';
    //查看暂存列表
    $ git stash list
    //恢复暂存,如果此命令不指定名字,则默认为打开最近一次
    git stash apply
    git stash apply stash@{2} 
    //删除
    git stash pop 名称

远程操作

git remote add origin https://githup.com/....  //添加远程的地址
git remote //查看远程的名称
git remote -v //查看详细的信息

git push -u origin master //推送分支到远程仓库
git branch -a //查看本地所有分支
git branch -r //查看远程分支

分支的提交:

git checkout master //切换到master分支
git push origin master //提交分支
--- fetch操作
1、git clone https://githup.com/...
2、git status //查看状态
3、git fetch //获取
4、git status //再次查看状态
5、git merge origin/master //合并

fork 操作

1、首先在githup上进行fork操作
2、使用git clone命令
3、修改文件
4、git push origin master //使用push命令
版权声明:本文为博主原创文章,未经博主允许不得转载。

Githup入门到上手

GitHub是基于git实现的代码托管。git是目前最好用的版本控制系统了,非常受欢迎,比之svn更好。GitHub可以免费使用,并且快速稳定。即使是付费帐户,每个月不超过10美刀的费用也非常便宜。利...
  • cain_123456
  • cain_123456
  • 2017年02月07日 15:38
  • 394

又是一个好资源个githup 上的

Skip to content PersonalOpen sourceBusinessExplore Sign upSign in PricingBlogSupport ...
  • rongbinjava
  • rongbinjava
  • 2016年07月05日 15:30
  • 5909

【机器学习基础】机器学习基础引入

“机器学习”是人工智能的核心研究领域之一, 其最初的研究动机是为了让计算机系统具有人的学习能力以便实现人工智能。 事实上,由于“经验”在计算机系统中主要是以数据的形式存在的,因此机器学习需要设法对数据...
  • JasonDing1354
  • JasonDing1354
  • 2014年12月03日 14:38
  • 1865

零基础学习Java步骤

零基础学习Java步骤
  • javaniuniu
  • javaniuniu
  • 2017年02月06日 12:46
  • 2345

统计学习基础(第二版)——引言

统计学习基础  第二版 引言 统计学习在诸多科学、金融、工业领域起到了关键性的作用,下面列举了一些学习的案例。 针对一位因心脏病住院的病人,预测其心脏病再次发作的概率。基于这位病人的人口信...
  • LXYTSOS
  • LXYTSOS
  • 2015年03月02日 16:27
  • 3006

深度学习(Deep Learning)从零基础达到入门级水平

本文标签:   机器学习 TensorFlow Google机器智能 人工智能 无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程...
  • littlesmallless
  • littlesmallless
  • 2017年03月17日 23:52
  • 15037

学习hadoop需要具备基础知识

首先整体上了解Hadoop,包括hadoop是什么,能够做什么,使用场景等,不需要考虑细节问题。在有了整体上的了解后,就开始准备系统地学习hadoop。建议:勿一味学习理论知识,要注意理论与实践相结合...
  • tongxinzhazha
  • tongxinzhazha
  • 2016年08月25日 18:25
  • 1644

跟着正哥0基础学C++——开始篇

要学习一门编程语言,首先要有一本适合的书本(当然这里指的是电子版,现在这个社会拿着纸质版的书籍学习知识的人越来越少了,不是不想,而是没那个条件,最近我也是买了三本心理书在办公室,中午休息的时候,或者下...
  • lionel_ran
  • lionel_ran
  • 2015年09月25日 22:42
  • 569

计算机网络基础学习笔记

1.基本概念划分 OIS的七层协议: 应用层、表示层、会话层、运输层、网络层、数据链路层、物理层。    OIS的五层协议: 应用层、运输层、网络层、数据链路层、物理层...
  • basycia
  • basycia
  • 2016年07月11日 13:57
  • 16534

githup的常用命令

githup的常用命令
  • c15522627353
  • c15522627353
  • 2015年12月14日 16:50
  • 1453
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:githup 基础学习
举报原因:
原因补充:

(最多只允许输入30个字)