git基本使用方法和常见问题

git的哲学--没有消息就是好消息


基本工作流程:

简单来说就是把[github远程仓库]的东西拿回到电脑里,编辑一番,然后把新文件add到[缓存区]再commit到[本地仓库]最后push到[github的远程仓库]。具体如下:

  1. 创建一个文件夹,git init将其初始化。
  2. 使用git clone命令把github远程仓库拿过来,(git clone xxxxx)
  3. 进行工作,工作结束后把编辑或新增的文件用git add xx这个命令添加到暂存区。
  4. 用[git commit -m '这地方写注释'] 命令把暂存区的东西提交到本地仓库。
  5. 用git push命令把本地仓库的东西发到Github的远程仓库里。
  6. 如果clone的仓库被别人修改了,记得git pull一下,要不然不能push。(作业)
    如果多个分支,记得git pull origin master写具体点。

ps:如果想再github 上参加开源项目,需要先把这个项目fork到自己账号下的仓库,然后clone到本地,这样才能push修改,否则没有权限的话不能push,最后如果你想参与开源项目,就在官方仓库点pull request,申请一下。


常见情况

  • 如果工作区有错误编辑,怎么办?
  • 如果我已经把错误内容add到暂存区了,怎么办?
  • 如果我已经把错误内容commit到本地仓库了,怎么办?
  • 如果我已经退回到某个历史版本了,但我又想恢复回新版本,怎么办?

一、如果工作区有错误编辑,怎么办?

使用git checkout -- xxx 命令,这时分两种情况

  1. 文件没add,那么该命令会让文件回到和本地仓库完全一样的状态。
  2. 文件add了,那么该命令会让文件回到被添加到暂存区后的状态。
    ps:这个命令的本质其实是用本地仓库的状态替换工作区的状态,所以也可以用来恢复被错误删除的文件。

二、如果我已经把错误内容add到暂存区了,怎么办?

这时使用git checkout命令只能操作工作区文件,暂存区的撤销使用命令:
git reset HEAD xxx ,这个命令可以把暂存区的修改撤销掉。

ps:把暂存区的修改撤销以后,如果使用git checkout命令,会让工作区文件回到本地仓库状态,而不是曾经的暂存区里的状态。

三、如果我已经把错误内容commit到本地仓库了,怎么办?

每次commit时,git都会对修改进行快照,保存文件当时的状态。
先使用[git log]命令,查看这些被保存的快照。最上面的快照是最近的。
确定了要撤回到哪个快照后,使用[git reset --hard HEAD~数字]命令,HEAD是当前版本,后面的数字是几就往前数几个版本。

ps:也可以使用[git reset --hard xxxx]命令,xxxx是commit id号。

四、如果我已经退回到某个历史版本了,但我又想恢复回新版本,怎么办?

如果已经退回到某个历史版本了,这时使用[git log]就只能看到当前版本(退回到的这个版本)和更早的快照。
这时应使用[git reflog]命令,显示全部记录,找到想要恢复的‘未来版本’的commit id号。
再使用[git reset --hard xxxxxxx]即可,xxxxx就是commit id。


github远程仓库

刚才讲的都是本地仓库以及现有远程仓库再克隆,其实也可以直接往远程仓库推送。
步骤如下:

  1. 先有一个本地仓库和一个远程仓库
  2. 把他俩绑定,使用[git remote add origin git@github.com:github账户名/github仓库名.git]命令
  3. 本地仓库推送到远程仓库,使用[git push -u origin master]命令,这样master就绑定了,以后使用[git push origin master]命令就可以把本地仓库master分支的最新修改推送到github的远程仓库了。

ps:同一个本地仓库,可以对应push多个远程仓库。
[git remote add coding 地址]这个是绑定到coding的项目上,git push coding master。


git分支操作

git分支类似平行宇宙,平时互不影响,最后一合并就ok
首先使用[git branch -a]查看本地和远程的所有分支,*代表目前所在的分支。
创建一个新分支git branch xx,切换到这个分支git checkout xx,然后就可以在各个分支愉快的工作了。
最后使用[git merge xx]命令把分支合并到master上就ok了。
记得删除dev分支[git branch -d dev]
ps:合并命令时把xx分支合并到当前分支,所以记得要切换到mastert上再用。


常用命令:

  • git int 把一个文件夹初始化成仓库
  • git clone 把远程仓库的东西拿到本地
  • git add 把文件从工作区提交到暂存区
  • git commit -m '注释' 把暂存区里的东西都提交到本地仓库
  • git push 把本地仓库的东西发到远程仓库
  • git status 查看目前仓库的状态
  • git diff 如果你向本地仓库提交文件后,在工作区编辑了这个文件,git diff xx可以让你查看两个文件的差异。
  • git checkout -- xx 把xx文件在工作区的修改全部撤销;若xx没add,那么回到和本地仓库一样的状态,如果已经add了,那么回到添加到暂存区后的状态。
  • git checkout xx 切换到xx分支
  • git reset HEAD xx 把xx文件的暂存区修改撤销掉。
  • git log 查看本地仓库的提交历史,以便确定要退回到哪个版本。
  • git remote -v 查看本地库里记录的远程库地址。
  • git branch -a 查看本地和远程所有分支。
  • git branch xx 创建新分支xx
  • git checkout xx 切换到xx分支
  • git merge xx 把xx合并到当前分支
  • git branch -d xx 把xx分支删除

ps:

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

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,648评论 4 54
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,630评论 9 163
  • 你太久没有流浪 总是逃避别人的热情 如果有一天 你带着简单的行囊 试图去走遍陌生的街道 在风里来 在雨里去 躲不开...
    信徒_e567阅读 160评论 0 0
  • 不幸的事,具有偶然性,有些可能逃脱不了,但有些却是可以避免的,比如生病这类事。 (一直想写一篇关于健康的小日...
    沫若水阅读 156评论 0 2
  • 1.字符串以什么开头 preg_match('/^MP/', 'Mwf');
    鱼落于天阅读 201评论 0 0