本文记录Git的使用操作,把散落的记忆整理到一起。并介绍GitHub的使用。

使用Git代表着一种思想和境地,和SVN相比,不是技术上的差异有多么大,而是代表融入了一种新的生态环境。一种开放开源的心态,一种技术上不断学习和领悟的精神。一种严格要求自己深入理解、不断寻求的态度。

Git使用操作指南

推荐网站:

http://rogerdudler.github.io/git-guide/index.zh.html

http://www.git-scm.com/book/zh

Git图形工具

SourceTree,如其名,源码树,能够方便的进行代码浏览、提交、合并,相比較使用Git命令。能够提高工作效率。

可是SourceTree的解决冲突的功能是比較弱的。能够使用Eclipse/Idean的合并工具,只是依旧不怎么好用。

推荐的比較合并工具是Beyond Campare。官网地址:http://www.scootersoftware.com/download.php ,顾名思义。超越了比較。非常强大的比較。

和Git结合。能够把冲突的文件。和远程代码库的最新文件比較。方便解决冲突。



Mac下怎样把Beyond Campare和Git集成,过程例如以下:

1、安装Beyond Campare 2,并运行其菜单的命令"Install Command Line Tools...",这里,我们就能够在命令行输入bcomp调用它了。

2、定义Git的比較合并工具,vim ~/.gitconfig。输入内容:

[diff]
tool = bcomp
[difftool "bcomp"]
cmd = \"/usr/local/bin/bcomp\" \"$LOCAL\" \"$REMOTE\"
[difftool]
prompt = false
[merge]
tool = bcomp
[mergetool]
prompt = false
[mergetool "bcomp"]
cmd = \"/usr/local/bin/bcomp\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"

3、git difftool 文件,就能够调出GUI。非常方便的比較合并文件了。

右边是有冲突的本地文件(我们要保存的),左边是用来比較的最新远程分支。

假设仅仅输入git difftool,会把全部的冲突的文件一个一个调出来处理。

4、git mergetool工具,分为5个区域。local/remote/base(共同的祖先),能够选的合并代码。目标代码。

PS:

假设有时git difftool不能调出diff界面。能够试着把冲突文件增加stage,然后在从stage中拿出来就能够了。

git add .  git reset HEAD .

git add 文件名称  git reset HEAD 文件名称

删除远程分支:git push origin :20151110-techoptimize

删除本地分支:git branch -d 20151110-techoptimize



參考网址:

c=kb_vcs.php">Using Beyond Compare with Version Control Systems

git-difftool - Show changes using common diff tools

使用Beyond Compare作为git mergetool的默认对照工具 For Mac

git config命令使用

Git查看、删除、重命名远程分支和tag

Git描写叙述

Git安装:http://git-scm.com/book/en/Getting-Started-Installing-Git

Git配置与使用:http://railstutorial-china.org/chapter1.html#section-1-3-1

10分钟Git使用教程:http://rogerdudler.github.io/git-guide/index.zh.html   http://www.open-open.com/lib/view/open1332904495999.html

和SVN会对每一个目录都增加.svn文件不同,Git仅仅会在根目录下创建一个.git目录,全部和Git管理相关的内容都在这里,假设你想把项目从Git管理中删除,移除这个目录就能够了。

使用Git,最好在每一个Git项目都建立一个.gitignore文件,能够到生成:https://www.gitignore.io/ ,其作用和SVN的ignore是一样的,比方,对于java项目,我们能够用例如以下的.gitignore文件:

*.class

# Mobile Tools for Java (J2ME)
.mtj.tmp/ # Package Files #
*.jar
*.war
*.ear # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid* # Ignore all logfiles and tempfiles.
.project
/*/.project .classpath
/*/.classpath .settings
/*/.settings
/*/.settings/* target
/*/target
/*/target/* .DS_Store .svn
.svn/* .idea
.idea/* Thumbs.db *.log

Git与GitHub

Gitclient:http://msysgit.github.io/ ,使用这个client的SSH验证方式例如以下:

  • ssh-keygen -t rsa -C 注冊邮箱
  • C:\Users\puma\.ssh\id_rsa.pub(假设是Mac系统,则文件夹是:/Users/puma/.ssh),把内容全然复制到gitserver
  • git clone git@10.20.30.14:mall/mall.git

推送到GitHub:http://railstutorial-china.org/chapter1.html#section-1-3-4

注意:你必须先注冊一个GitHub.Com账户,假设使用SSH方式进行推送,则须要创建SSH秘钥。须要在GitHub中建立Repository。

比方,我们在GitHub有个账户:pumadong 。以下建立了一个项目: cl-privilege,则能够:

Create a new repository on the command line

touch README.md

git init

git add README.md

git commit -m "first commit"

git remote add origin git@github.com:pumadong/cl-privilege.git

git push -u origin master

假设在github建立项目时。建立了README.md文件,则上一步会提示版本号问题,不能push,须要用以下这两行:

(

git pull origin master

git commit -m "first commit"

)

也能够:

Push an existing repository from the command line

git remote add origin git@github.com:pumadong/cl-privilege.git

git push -u origin master

如今我们能够在GitHub中看到这个master分支了:

https://github.com/pumadong/cl-privilege

关于Git。在Windows及Mac以下。都有GUI程序可用,在linux以下,貌似仅仅有git命令可用了。

假设这个项目在Eclipse打开时,没有识别Git,能够删除项目,从GitHub上克隆一次:git clone git@github.com:pumadong/cl-privilege.git

Git和GitLab

GitHub对于私用来说,是非常贵的。对于公司内部使用。通常是使用GitLab。

http://www.gitlab.com/

http://www.uloli.com/p/6sh26/

FAQ

在Eclipse中Pull时,报错:The current branch is not configured for pull No value for key branch.mall_2.8.5.merge found in config

解决的方法:

找到.git/config文件。添加mall_2.8.5节点就可以。

chmod 777 *,会导致Git觉得文件被改动。

Git使用操作指南和GitHub的更多相关文章

  1. Git常用操作指南

    目录 前言 Git简介 安装之后第一步 创建版本库 本地仓库 远程仓库 版本控制 工作区和暂存区 版本回退 撤销修改 删除文件 分支管理 创建与合并分支 解决冲突 分支管理策略 状态存储 多人协作 R ...

  2. Git 基本操作指南

    Git 基本操作指南 内容概要 这个作业属于哪个课程 2022面向对象程序设计 这个作业要求在哪里 2022面向对象程序设计寒假作业1 这个作业的目标 Git & Github 作业正文 如下 ...

  3. Git版本控制软件结合GitHub从入门到精通常用命令学习手册(转)

    简要参考:http://www.tuicool.com/articles/mEvaq2 http://gitref.org/zh/index.html GIT 学习手册简介 本站为 Git 学习参考手 ...

  4. MyEclipse 8.5整合Git,并在Github上发布项目【转】

    最近Git火得如日中天,而且速度体验和团队模式都很不错.手头正好有个学生实训项目,时间紧任务重,而且学校内网管理太紧,所以就想借助于Internet的分布式开发,因此想到了Github. 经过一天的调 ...

  5. 使用git命令提交远程github仓库的时候提示"rejected"(拒绝)解决办法

    今天使用在自己笔记本本地磁盘上使用Git命令行执行"git push"然后输入github的用户名和密码之后,报如下错误: ![rejected] master->maste ...

  6. MyEclipse 8.5整合Git,并在Github上发布项目(转)

    下载Eclipse的git插件——EGit.下载网址http://download.eclipse.org/egit/updates-1.3/org.eclipse.egit-updatesite-1 ...

  7. Eclipse配置Git发布项目到Github

    很牛叉的博客http://blog.csdn.net/luckarecs/article/details/7427605 一.安装插件 菜单栏Help --> Install New Softw ...

  8. Git服务搭建及github使用教程

    .pos { position: fixed; top: 35%; left: 90% } .pos a { border: 2px solid white; background: #99CCFF; ...

  9. 本地Git搭建并与Github连接

    本地Git搭建并与Github连接 git 小结 1.ubuntu下安装git环境 ubuntu 16.04已经自带git ,可以通过下列命令进行安装与检测是否成功安装 sudo apt-get in ...

随机推荐

  1. Java Web Services (2) - 第2章 启动日志分析

    ZHAOFLIU-Mac:dev liuzhaofu$ ./start --seed########################################################## ...

  2. niu人

    金步国简历 金步国简历 基本资料 姓名 金步国 性别 男 年龄 30 籍贯 江苏 淮安 院校 同济大学 专业 土木工程 学历 本科肄业 工作经验 5年 期望地点 长江以南 期望薪水 18000/月 个 ...

  3. Java线程状态及Thread类中的主要方法

    要想实现多线程,就必须在主线程中创建新的线程对象. 不论什么线程一般具有5种状态,即创建,就绪,执行,堵塞,终止. 创建状态: 在程序中用构造方法创建了一个线程对象后,新的线程对象便处于新建状态,此时 ...

  4. 解决Andriod使用HttpURLConnection 失败问题

    在Android的Activity中使用HttpURLConnection连接到服务端时抛出异常,Access denied.第一个想到是权限问题.然后就尝试将INTERNET权限加上:在Manife ...

  5. Linux Force DHCP Client (dhclient) to Renew IP Address

    http://www.cyberciti.biz/faq/howto-linux-renew-dhcp-client-ip-address/‘m using Ubuntu Linux. How to ...

  6. WM_CLOSE、WM_DESTROY、WM_QUIT学习总结(点击关闭按钮会触发WM_CLOSE消息,DestroyWindow API会触发WM_DESTROY和WM_NCDESTROY消息,MSDN上写的很清楚)

    WM_CLOSE:关闭应用程序窗口 WM_DESTROY:关闭应用程序 WM_QUIT:关闭消息循环 只有关闭了消息循环,应用程序的进程才真正退出(在任务管理器里消失). win32应用程序的完整退出 ...

  7. [C++]函数参数浅析

    Date:2014-1-9 Summary: 函数参数相关记录 Contents:1.形参实参 形参:用于接收值的变量被称为形参 实参:传递给函数的值被称为实参 2.函数的参数传递之后2种 a).值传 ...

  8. Android中使用SurfaceView和Canvas来绘制动画

    事实上每一个View中都有Canvas能够用来绘制动画.仅仅须要在这个View中重载onDraw()方法就能够,可是SurfaceView类是一个专门用来制动动画的类. Canvas(中文叫做&quo ...

  9. RGB與CIELAB色彩空間轉換

    原地址:http://cg2010studio.wordpress.com/2012/10/02/rgb與cielab色彩空間轉換/ 之前有研究CIE L*a*b*色彩空間,現在想更進一步探討RGB色 ...

  10. Tutorial: 结合使用AngularJS和Django

    好吧,我承认自己很懒,时间又不够用. 翻译的几个文章都是虎头蛇尾,但我保证这次肯定不太监. 关键的单词不翻译,实在觉得翻译成汉语很别扭,括号里是参考翻译. 有问题和建议尽管提出来,我会改进完善. Tu ...