git/GitHub的一些基础操作

github.com基本功能

  1. 仓库Repository

  2. 收藏Star
    收藏他人的项目方便下次查看

  3. 克隆Fork
    克隆他人的仓库到自己的账户(独立于原来的那个)(分支)

  4. 发起请求Pull Request
    将自己的分支‘推荐’给他人,他人可以选择合并

  5. 关注Watch

  6. 事务卡片Issue
    提出bug,与其他用户交流

  7. Github主页、仓库主页与个人主页

Git基本命令

配置/初始化

git软件安装好后,需要使用命令行进行简单的配置(设置用户明和邮箱)
然后在你项目的文件夹内建立git仓库

git config --global user.name "username"
git config --global user.email user@example.com
//初始化全局用户名和邮箱

git config --list
//查看你的配置信息

git init
//在当前目录下建立git仓库

一些基本命令

这是使用git的一些基本命令。能够完成将编辑修改过的文件提交到本地仓库这种最基本的功能。

git add <file>
//将新文件添加到暂存区/将文件的修改提交到暂存区

git rm filename
//删除暂存区的文件

git checkout -- <file>
//撤销
/*将工作区的某文件还原到与暂存区(如果没有提交到暂存区,则是仓库的最新版本)一样的状态,即使是工作区理的这个文件被删除了也是可以的*/

git commit -m "提交描述"
//将所有暂存区的修改提交到仓库

git status
//查看状态

还有一些实用命令

git reset HEAD <file>
//这是将暂存区的修改撤销,清空暂存区
/*这里HEAD表示的是"最新版本"(其实是当前分支的当前版本)*/

git diff HEAD -- <file>
//查看工作区的文件与最新版本的区别

Git远程仓库

git远程仓库连接

远程仓库和本地仓库主要可以使用ssh和http两种协议来连接。

ssh

  1. ssh下远程仓库的地址
    格式为git@server-name:path/repo-name.git 例如git@github.com:zhaochao1234/mygit.git
  2. 建立ssh连接需要首先在用户主目录里生成ssh密钥
    首先在主目录下用以下命令生成密钥:
    ssh-keygen -t rsa -C "youremail@example.com"
    运行这个命令需要openSSH等程序的支持,通常的计算机默认都安装了;
    引号里时填写你的邮箱地址。
    然后目录里会生成一个名为.ssh的文件夹,文件夹里有id_rsaid_rsa.pub两个文件,它们分别是私钥和公钥,公钥是你可以让别人知道的。
    接着我们要把公钥的文本添加到你的GitHub账户里去,具体是在账户的settings对应的位置添加。
    一个GitHub账号可以添加多个公钥,以便于用户能在多台主机上工作。
  3. 在ssh协议下,在第一次push或者clone时,会收到一个警告,我们选择"Yes",那么github服务器的公钥就会被本机加入信任列表,在以后的clone或push中,便不会受到警告了。

http

  1. http下远程仓库的地址在github中就是仓库页面的地址例如https://github.com/zhaochao1234/mygit.git
  2. 通常对于初学者来说,使用http协议要更加简单一些,因为它是不需要像配置但是每次push时都要输入用户名密码。

推送到远程仓库

远程库的名字通常设置为origin

以下所有的命令的<url>选项,既可使用ssh协议的地址,又可使用http协议的地址,客户端将自动以对应的方式与远程仓库连接。

git remote add origin <url>
//添加远程仓库(将其名字设置为origin)

git push origin master
//将本地仓库的当前版本推送到远程origin仓库的master分支

添加远程仓库后,如果使用一次git push -u origin master命令进行推送,这个-u是将本地与远程的master分支自动关联了,此后每次提交只要git push就可以了。
如果是使用ssh协议,如果不是在生成密钥是设置了密码,那么在push时是不用输入密码的;但如果是使用HTTP协议,那么在每次push时都要输入用户名和密码。

克隆远程仓库

git clone <url>
//克隆远程仓库到本地仓库

如果使用ssh协议,由于需要密钥,所以是用户本人才能够成功;但如果时使用http协议,你可以从github上克隆任意的public项目到本地。

克隆远程仓库到本地

利用GitHub建立主页

能够利用GitHub搭建网页,你可以通过建立一个suername.github.io仓库用来搭建一个个人主页,还能为你的一个任意的仓库搭建一个项目站点。

搭建个人主页

  1. 创建username.github.io仓库
    这个仓库的名称只能是"用户名.github.io"的格式

  2. 仓库目录里必须有index.html文件,否则这个主页是无法打开的

  3. 访问主页的地址即是仓库的名称,即username.github.io

搭建项目主页

  1. 可以在项目的setting设置页面中快速搭建一个项目主页

  2. 也可以通过README.md文件实现快速搭建

  3. 这个主页表现为这个项目的一个名为gh-pages的分支

  4. 主页的访问地址是username.github.io/repositoryname

git版本回退

事实上,我们每次commit一次,都是创建了一个新的版本。git将各个版本穿成一条时间线。git的基本功能之一就是能实现版本回退。
需要补充的几点:

  1. HEAD是一个指针,指向的版本表示当前版本(当前分支的),如果还没有回退过的的话,就是指的最新版本。HEAD^是指当前版本的上一个版本,HEAD^^上两个版本,HEAD~100上100个版本;
  2. 每个版本都有一串commit id,是计算机自动生成的;
  3. 这里说的回退具体是指叫将HEAD指向指定版本,并将指定版本的内容替换到工作区,并清空暂存区;
git log
//查看个版本的信息

git reset --hard <版本>
//回退到指定版本
/*<版本>既可以用commit id(版本号)[的前几位]来表示,也可以用HEAD,HEAD^,HEAD^^,HEAD~100等关键字来表示*/

git reflog
//查看所有的历史命令
/*这对切换到未来(HEAD之后的版本)的版本有很大帮助,因为git log是无法显示未来版本的,而且形如"HEAD^"式的表示法也只能表示之前的版本*/

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

推荐阅读更多精彩内容