git的学习

之前5年开发一直用SVN,操作也是属于傻瓜式操作。如今工作当中越来越多项目用GIT来进行版本管理。我们知道SVN属于集中式管理服务器。而GIT属于分布式管理服务器。。再SVN中。你一旦修改代码提交后。就会改动整个服务器上的代码。如果是小项目。或者需要内网研发的问题不大。如果团队开发人数较多。软件的版本较多。这种弊端就很明显。稍微一不小心。互相覆盖了或者删除了对方的代码。而GIT这种属于有多个分支。我们一般有发布分支。是主分支。而可以建立多个开发分支跟测试分支。大家互不影响。然后再自己的本地拉去远程的开发分支跟测试分支。写好代码测试完成。分别提交到远程的开发分支跟测试分支。最后发送pull request.由管理员决定谁的分支没问题进行合并请求的完成。下面是git命令行流程。GUI操作属于傻瓜式操作。大家主要了解下命令行操作。

1:步骤1:先去git上注册一个用户名跟密码.

2命令行操作git config --global user.name "你的用户名" 

 git config --global user.email "你的邮箱"

3:生成公钥私钥 

 ssh-keygen -t rsa -C "your_secondemail@email.com" -f ~/.ssh/second_rsa

4:把~/.ssh-config/下面的second_rsa.pub里面的内容添加到git里面去.GIT网站登陆后有SSH配置公钥

5:然后再~/.ssh-config/config里面配置

Host cgx

    HostName github.com

    User 1616161616@qq.com

    PreferredAuthentications publickey

    IdentityFile  "C:\Users\THINKPAD\.ssh\cgx_rsa"

可以这样配置多个账户。模拟不同账户登陆git进行提交

6:连接测试

ssh -T git@cgx (Host后面的东西)

7:接下来实际git操作

cd e: 

mkdir testGit

cd testGit

git init   //先初始化git文件夹

git clone http://git.isecsp.com/xxx/contracts.git      (这个网址需要你从git上面新建一个仓库,把远程git仓库克隆到本地仓库)

git add .  //添加所有文件

git commit -m "添加的说明"        //进入提交编辑模式

git push -u origin master //把我们本地master分支的代码提交到我们的远程仓库origin/master中

/显示简单信息

git log --pretty=short

//git log dirName 只会显示该目录下的提交

//git log fileName 只会显示该文件相关的日志

git log -p README.md //前后差别

//要查看当前提交与最新提交的差别

git diff HEAD

//确认完再git commit -m "红袜各位"

//创建,切换新分支

git checkout -b feature-A

//或者先创建分支,然后再切换分支

git branch feature-A

git checkout feature-A

//切换至上一个分支

git checkout -

//删除分支

git branch -D branchName

//删除远程分支

git push origin --delete branchName

//合并到主干分支

git checkout master

git merge --no-ff feature-A  (如果合并有冲突,修改冲突文件重新add,然后commit)

//以图表形式查看分支

git log --graph

//回溯到创建feature-A分支以前

//要让仓库的HEAD、暂存区、当前工作树回溯到指定状态,需要用

//到git reset --hard (indexHashValue)。只要提供目标时间点的哈希值,

 //哈希值在每个环境中各不相同,读者请查看自身当前环境中Add index 的哈希值,

进行替换。(git log --graph) 查看index的hash值

//查看当前仓库的操作日志 (git log命令只能查看以当前状态为终点的历史日志)

git reflog

//修改提交信息

git commit --amend

//一次完成2部操作

git commit -am "更改的信息"

//更改历史 修正的内容与之前一次的提交合并,在历史记录中合并为一次完美的提交

//可以选定当前分支中包含HEAD(最新提交)在内的两个最新历史记录为对象,并在编辑器中打开

//修改第二个,把pick改成fixup

git rebase -i HEAD~2

//将它设置成本地仓库的远程仓库

cd git-tuorial

//把本地git仓库跟远程仓库关联

git remote add origin git@github.com:用户名/git-tuorial.git

//设置远端仓库

git remote set-url origin git@github.com:用户名/git-tuorial.git

//删除远程某个分支

git remote rm origin

//查看远程分支的版本

git remote -v

//修改当前分支名称

git branch -M master

//push之前先pull下来 ,origin是远程分支,master是你本地的分支

git pull origin master

//如果有冲突解决方案

git diff 冲突文件

vi 冲突文件 ,修改冲突

git add 所有摇提交的文件

git commit -m "xxx"

git pull origin master

git merge origin/master

git push -f orign master

//把本地仓库分支feature-D推送到远程origin分支

git push -u origin feature-D

git checkout feature-D

git pull origin feature-D

//合并远端master分支到本地feature-D分支

git merge origin/master feature-D

//合并远端feature-D分支到本地master分支

git merge origin/feature-D master

git push origin feature-D

//如果本地的分支跟远程的分支不一样,则指定本地和远程的分支的名称

git push origin localBranchName:remoteBranchName

例子

//这样是不对的.会再远端新建一个分支origin/feature-C.因为origin已经有这个路径了

git push origin master:origin/feature-C                        (把当前master分支推送到远端origin/feature-C分支上)

//正确做法

git push origin master:feature-C (把当前master分支代码提交到远端origin/feature-C分支上)

//当修改了本地master合并到远端feature-D分支,这是feature-D

(push之前修改了代码没提交这样做会直接覆盖本地分支feature-D.提交了再push会写入远端分支,而不会覆盖本地feature-D分支)

//跟master一样,但远端feature-D分支没变,需要

git add .      git commit -m "" ,git fetch ,git merge origin/feature-C master

git push origin master:feature-C

//查看所有分支

git branch -a

//让仓库维持最新状态,

git fetch origin

git merge origin/master     

本地分支同远程分支进行关联,可以分为以下2种情形:

情形1:本地已经创建了分支dev(以dev为例,下同),而远程没有

可以通过以下2种方法在远程创建分支dev,并与本地分支进行关联:

方法1: git push -u origin dev

方法2: git push --set-upstream origin dev

情形2:远程已经创建了分支dev,而本地没有

在本地创建分支并与远程分支进行关联,也有2种方法:

方法1分为两步:

step1:先将远程分支pull到本地 git pull origin dev

step2:再在本地创建分支并与之关联,又有2种方法

(1)git checkout -b dev origin/dev

(2)git checkout -b dev --track origin/dev    #可以简写为git checkout --track origin/dev

方法2:可以在pull远程分支的同时,创建本地分支并与之进行关联

git pull origin dev:dev-------两个dev分别表示远程分支名:本地分支名

//查看remote地址,远程分支,还有本地分支与之相对应关系等信息

git remote show origin

//远程删除了分支,本地却还有分支解决方法

git remote prune origin

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

推荐阅读更多精彩内容

  • git分支使用的坏习惯 最近使用git提交代码发现大家的方式都不一样,自己在使用中也遇到了一些问题,导致代码危险。...
    好奇的小刺猬阅读 1,690评论 0 1
  • 程序猿工作中接触到的 Git 命令其实不是很多,常用的就那些。有时候遇到一些小功能,就上网查一下,本文就针对用到的...
    Michael翔阅读 776评论 0 4
  • pro gitGit教程 Git是目前世界上最先进的分布式版本控制系统(没有之一)Linus在1991年创建了开源...
    凯玲之恋阅读 466评论 0 0
  • 安装: windows安装git-- msysgit是windows版的git,下载单独的.exe按照默认选项安装...
    alceyp阅读 678评论 0 0
  • 引用 感谢廖海峰老师的精彩文章文章出处https://www.liaoxuefeng.com/wiki/89604...
    学习ing兰阅读 205评论 0 0