git的简单使用

参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

配置gitbash变量可以在C:\Program Files\Git\etc\bash.bashrc 中(git在win10的安装目录,linux可以直接在profile或者.bashrc中配置),比如:alias ll="ls -al"

基本配置:

git init

git config --global user.name 'zhaoyl'

git config --global user.email 'zhaoyl@adfasdf'

git config --get user.name //查看一些信息

基本命令

git add file | . //添加到暂存区

git commint -m ‘asdfasd’ file | *  //提交

git status //显示被修改的文件处于什么提交状态(处于工作区则提示:变更没有暂存,暂存区则提示:变更将要被提交,还是仓库则提示没有需要被提交的文件)

git diff

比较工作区与暂存区,

--cached  [<path>...] 比较暂存区与最新本地版本库,

HEAD [<path>...]比较工作区与最新本地版本库,

commit-id  [<path>...] 比较工作区与指定commit-id的差异,

--cached [<commit-id>] [<path>...]  比较暂存区与指定commit-id的差异

[<commit-id>] [<commit-id>] 比较两个commit-id之间的差异

> patch 生成补丁,参考diff详细说明

git log //显示文件修改历史(显示的是-m参数指定的提交说明,从提交时间线上看,显示的是HEAD指针指向的commit之前的【包括本commit)的记录

git reset --hard HEAD^ | commitId //回到上一个版本或具体提交id,HEAD^^上两个版本,HEAD~100 上100个版本,--hard操作的是提交id,而一次提交可以包含多个文件

git reflog //显示回退记录,从记录看到回退了两次,

git checkout -- file //撤销本地修改,和暂存区同步

git reset HEAD <file> //撤销暂存区的修改,和本地库同步

git reset --hard HEAE^|commitid //和本地某次提交同步,前提是没有推送到远程库

git rm file //删除工作区文件,并把修改add到暂存区

远程仓库

github:https://github.com/

注册后,创建一个空的仓库,比如:git@github.com:zhaoyl2019/bigdata.git

本地ssh生成密码,在github上设置公钥

第一次和远程交互:

git clone git@github.com:zhaoyl2019/bigdata.git

或者远程是空仓库

git remote add origin git地址

然后提交本地仓库到origin

git push -u origin masters

分支

git checkout -b dev //创建一个dev分支,切换到dev;git branch dev 创建分支,git checkout dev 切换分支

git checkout master

git merge dev //把dev合并到master分支; --no-ff:禁止使用快进模式,合并生成一个commit,快进模式一般发生在没有需要解决冲突的时候。master指针直接指向分支

git log --graph //查看分支合并图

git branch -d dev //删除dev分支

git branch -D fe (fe 是dev的checkout)//强制删除fe分支,当fe分支没有被合并到dev分支时,可以强制删除

git stash //储藏分支,然后切到什么分支,工作区就是什么分支内容

git stash list //显示储藏的分支

git stash pop //恢复分支,并删除储藏的分支;git stash apply 恢复,git stash drop 删除

此操作在开发中临时拉取bug分支进行修复bug时用,可以隐藏dev中的分支进行修复bug

git checkout -b dev origin/dev //切换到远程dev分支

git pull //拉取最新的远程dev分支,如果pull失败,根据提示:git branch --set-upstream-to=origin/dev dev指定本地dev链接上远程dev

git push origin dev //提交到远程的dev分支

当两个仓库没有共同的祖先,要在本地合并他们

1.git remote add origin1 git@github.com:zhaoyl2019/bigdata1.git

2.git checkout -b bigdata

3.git fetch origin1

4.git branch --set-upstream-to=origin1/master bigdata

5. git pull //会提示:fatal: 拒绝合并无关的历史

6.git pull --allow-unrelated-histories //就可以进行合并了

当两个仓库有共同的祖先,要在本地合并他们

github中新建一个bigdata2仓库,并从bigdata导入数据

git remote add bigdata git@github.com:zhaoyl2019/bigdata.git

git remote add bigdata2 git@github.com:zhaoyl2019/bigdata2.git

git branch  -u bigdata/master master //本地已存在的master和bigdata/master建立追踪(此步骤发生在本地把remote都删除的情况,一般本地master已经追踪了bigdata/master了)

检查本地和bigdata一致后,可以新建分支或者在本地master上切换追踪,一般稳妥期间,应该切换分支来和bigdata2进行合并

本例子在本地master上操作

git fetch bigdata2

git branch -u bigdata2/master master

git pull 然后解决冲突

然后切换追踪

git branch -u bigdata/master master

git status 提示您的分支领先 'bigdata/master' 共 1 个提交(使用 "git push" 来发布您的本地提交)

git rebase //可以把本地未push的分叉提交历史整理成直线

git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

git tag -a <tagname> -m "blablabla..."可以指定标签信息;

git tag可以查看所有标签

git show <tagname> 查看标签内容

git push origin <tagname>可以推送一个本地标签;

git push origin --tags可以推送全部未推送过的本地标签;

git tag -d <tagname>可以删除一个本地标签;

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

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

推荐阅读更多精彩内容

  • Git的简单使用 第一次开发先在线上创建一个码云仓库,在新建一个分支。然后在电脑上选取一个文件夹,比如桌面,然后把...
    悠哉悠哉_8c2a阅读 318评论 0 0
  • 转载至:https://www.liaoxuefeng.com/wiki/896043488029600 Git简...
    hwang_zhic阅读 328评论 0 0
  • 前提: SVN属于集中式管理:需要依赖网络以及“中央管理库”Git属于分布式管理:不需要网络,任何人本地都是一个完...
    Eddiegooo阅读 455评论 2 2
  • 资料来源: Git教程 创建版本库 创建一个空目录$ mkdir demo$ cd demo 使用 git i...
    Hanz520阅读 163评论 0 0
  • 因为平时多用 github客户端 命令用的少工作中没有团队用过git今天就看着文档 练了下简单的 学习下使用 cl...
    Daemon1993阅读 575评论 0 3