git使用

一.Git命令(bash)

一.1.安装

Linux:先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装就好了

Window:从官网下载安装即可。https://git-scm.com

Window版安装完后,右键菜单下出现两个git功能,git bash(命令)和git gui(界面)。我们推荐使用命令操作

一.2.配置用户名和密码

用于提交代码

git config --globaluser.name "Your Name"

git config --globaluser.email"email@example.com"

注意:

加上global,所有的系统都会使用这个账号,也可以在每个项目中使用不同的用户,去掉global在项目下运行命令即可。

一.3.创建git项目

在你想要使用git控制版本的项目目录下,执行git init,会将这个项目纳入到git管理。(目录下会多出个.git的文件夹,类似svn)

一.4.添加项目到git仓库

第一步:加入到暂存区,git addreadme.txt

第二步:将暂存区提交,git commit-m“写段注释”


我们可以时刻看看暂存区是否有代码要提交,git status,类似于svn的同步

上图表示修改过readme.txt,但是还没有提交。

我们还可以使用git diff文件名来查看该文件修改过什么地方了。

一.5.查看历史记录

git log [--pretty=oneline  --graph ]


前面一大段字符串是版本id,后面1.txt commit是本次操作

一.6.回退到历史记录

git reset --hardHEAD^

Head在git里表示最新版本的意思head^表示上一个版本。

如果要会退到指定版本,那么可以先查一下历史记录,找到要回到的版本号

git log [--pretty=oneline  --graph ]

接着执行回退命令

git reset --hard3628164

3628164是版本号,不用写全,写几位就可以了,git会自动匹配,也不要写太少,否则会有多个版本

git reset --hard52918e

如果想从历史版本回到最新版,现在历史记录git log已经查不到了,但是通过命令

git reflog可以查到,接着执行命令git reset --hard

一.7.撤销修改

git checkout -- file或者

git reset HEAD file退回到该文件最新版本

一.8.删除文件

git rm文件并且提交git commit

如果删除还没有提交,还可以还原

git checkout--文件名

如果删除提交了,只能用回复历史记录了git reset --hard 版本号

一.9.远程仓库

一.9.1.远程仓库授权代码提交权限

如果远程项目开源,可略过此步

参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374385852170d9c7adf13c30429b9660d0eb689dd43a000

第1步:创建自己的公钥SSH Key

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

第2步:登陆远程服务器如GitHub,打开“Account settings”,“SSH Keys”页面

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容


点“Add Key”,你就应该看到已经添加的Key:


一.9.2.添加到远程库

取得远程仓库的地址如:git@github.com:xxx/learngit.git

关联远程仓库

git remote add origin git@github.com:xxx/learngit.git

把本地内容推送到远程仓库(第一次推送加-u,这样会将本地的master和远程master关联)

git push -u origin master

以后再提交就不需加-u

git push origin master

一.9.3.从远程仓库下载(克隆)

git clone git@github.com:xxx/gitskills.git

注意:一般的git都会有多种协议 如https  ssh  git等

一.10.分支管理

一.10.1.创建和合并分支

Git默认一个master分支(主分支)


我们来创建一个dev分支

git checkout -b dev

Git checkout:创建  加上-b表示创建后切换到dev

等价于:git branch dev   git checkout dev



我们看到所在的分支后面的任何操作都是在当前分支下操作,不会影响其他分支


如上图,dev下我们开发的代码已经是最新版里,但是master是旧的,我们需要将dev合并到master主分支上

首先:切换回主分支git checkoutmaster

然后:执行合并git mergedev

接着:合并完后,dev其实没用了,可以删除git branch -ddev

一.10.2.解决冲突

同svn冲突一样,git也会出现冲突,当多个分支代码都更新后


如上图,分支master和分支feature1都修改了一个文件并且提交

这个时候任意一个分支执行合并都会出现冲突

<<<<<<

=======CreatinganewbranchisquickANDsimple.

>>>>>>> feature1

解决一个分支后继续提交即可,如下


看一下历史记录

$ git log --graph --pretty=oneline --abbrev-commit

*59bc1cb conflict fixed

|\

| *75a857cANDsimple

* |400b400 & simple

|/

* fec145a branch test

一.10.3.远程分支

在前面步骤中,我们关联上了远程代码,下面直接提交代码

git push originbranch-name

branch-name要和自己本地库中分支对应

关联方法(两种):

1、git push -u origindev提价本地并在远程创建并关联

2、git checkout -b branch-name origin/branch-name创建本地分支名字和远程一样

git branch --set-upstream branch-name origin/branch-name关联上

一.10.4.标签

创建标签:git tag v1.0

在分支上创建,标签就属于某个分支的

git push origin 可以推送一个本地标签

git tag -d 可以删除一个本地标签

git push origin :refs/tags/可以删除一个远程标签

一.10.5.忽略文件

有一些文件比如.classpath,或者系统生成的文件,对我们的项目没有任何作用,但是git会管理。我们需要忽略他们

编写.gitignore文件

内容是你要忽略的文件名

二.git客户端(gui)









三.eclipse的git插件使用

第一步:安装好git插件

第二步:打开git视图


从远程下载(可以是github或者其他远程服务器如oschina)


选择Clone URI





指定下载到本地路径,其他默认即可,点finish完成下载

导入的eclipse里,随意修改一个文件,提交


出现git gui一样的界面,填上你的用户名和密码(如果要推送到远程服务器,用户必须是git服务器认证过的,除非服务器没有设置权限认证)



如果远程服务器已授权,可以推送到远程服务器



实际开发中是自己公司的远程服务器

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

推荐阅读更多精彩内容

  • 声明:这篇文章来源于廖雪峰老师的官方网站,我仅仅是作为学习之用 Git简介 Git是什么? Git是目前世界上最先...
    横渡阅读 3,941评论 3 27
  • 原文地址主要用到的命令: git config user.name 设置用户名 git config user....
    AFinalStone阅读 458评论 0 2
  • 转载自:http://www.open-open.com/lib/view/open1414396787325.h...
    Bbooo阅读 407评论 0 3
  • 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集...
    毛子阿卡西阅读 249评论 0 1
  • 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集...
    傲慢二锅头阅读 410评论 0 0