Git 与 GitHub 入门操作手册

不要一开始就试图理解 git 的原理,我目前也不理解,当下只需要背下这些命令,按步骤配置好 git 和 GitHub 使用它们即可,理解原理这种事还是等熟练使用之后再谈吧。

配置 GitHub

  1. 首先你得用一个 GitHub 账号,没有就去注册
  2. 进入SSH and GPG keys
  3. 点击 New SSH key
  4. title 随便填,key 等一会填
  5. 打开 Git Bash,键入rm -rf ~/.ssh/*(不要打错哪怕一个空格,否则后果自负),把现有的 SSH key 都删掉
  6. 键入ssh-keygen -t rsa -b 4096 -C "你的邮箱",真的要填入你的邮箱哦!
  7. 按回车三次,别问中间发生了什么
  8. 键入cat ~/.ssh/id_rsa.pub,得到一串东西,完整复制这段东西,回到页面上,粘贴这个 ‘key’
  9. 点击 add SSHkey
  10. 回到 Git Bash,键入ssh -T git@github.com,你可能会看到一个提示(提示最后问你 yes/no),输入 yes 并回车,别傻等着
  11. 然后,如果你看到 Permission denied(public),就说明你失败了,那就回到第 2 步重来
  12. 如果你看到跟 Hi XXX! You've successfully authenticated,but Github does not provide shell access.差不多的提示,就说明你成功了
  • 好了,终于添加好了一个 SSH key 了,不要问这个有什么用,想要了解原理就去看这篇文章,不过我建议你先不要看,还是那句话,先用起来再说
  • 一台电脑只需要一个 SSH key
  • 一个 SSH key 可以访问你 GitHub 的所有仓库,
  • 如果你买了新电脑,新电脑上新生成一个 SSH key ,将这个 key 也上传到 GitHub 上,它与之前的 key 可以共存
  • 如果你不小心将 key 从电脑上删除了,重新生成一个即可,替换之前的

配置 git

git config --global user.name 你的英文名
git config --global user.email 你的邮箱
git config --global push.default matching
git config --global core.quotepath false
git config --global core.editor "vim"

打开 Git Bash ,依次运行上面 5 句命令,每句回车后都没有反应,没有反应就对了,弄完你的 git 就配置好了

使用 git 的三种方式

一、只在本地使用

  1. 打开 Git Bash 进入一个你常用的目录,创建我们的项目目录 mkdir git-demo-1
  2. 进入目录 cd git-demo-1
  3. git init,这句命令会在 git-demo-1 中创建一个 .git 目录,ls -al 可以看到它,不过不用进去看
  4. 在 git-demo-1 中添加任意文件,加入我们添加了两个文件,分别是 index.html 和 css/style.css
touch index.html
mkdir css
touch css/style.css
  1. 运行 git status -sb,可以看到文件前面有 ?? 号
## Initial commit on master
?? /css
?? index.html
这个 ?? 号表示 git 对你的操作很懵逼,不知道你要怎么对待这些变动
  1. 使用 git add 将文件添加的“暂存区”
  • 你可以一个一个地 add
git add index.html
git add css/style.css
  • 你也可以一次性地 add
git add .
表示将当前目录下的变动都添加到“暂存区”
  1. 再次运行 git status -sb,可以看到 ?? 变成了 A
## Initial commit on master
A css/style.css
A index.html
这个 A 表示添加,你告诉了 git ,这些文件我要添加到仓库里
  1. 使用 git commit -m "信息"将你 add 的内容“正式提交”到本地仓库(.git),并添加了注释信息,方便日后查阅
  • 你可以一个一个地 commit
git commit index.html -m ‘添加 index.html’
git commit css/style.css -m ‘添加 css/style.css’
  • 你也可以一次性地 commit
git commit . -m ‘添加了几个文件’
  1. 再次运行 git status -sb发现没有文件变动了,这是因为文件变动已经记录在仓库了
  2. 你可以用 git log你的 git 历史变动
commit f0d8gfgfg98g9f8g0s9f8g9s8gs98fg9800fgs
Author: XXX<XXX@xxx.com>
Date: Thu Sep 27 22:30:33 2018 +0800
添加几个文件
  1. 以上就是 git add/git commit 的一次完整过程,可得出来还是挺复杂的,原则上来说,错了一步就重新来过,直到不再手抖为止

如果我想继续更改文件,应该怎么办?

  1. git-demo-1 目录下 start css/style.css会用默认编辑器打开 css/style.css(start/open)
  2. 编辑输入 body {background: red}保存退出
  3. git status -sb发现提示中有个红色的 M
## master
M css/style.css
M (即 Modified),表示这个文件被修改了
  1. 此时你如果想让改动保存到仓库中,你需要 git add css/style.cssgit add .
  2. 运行 git status -sb发现 M 由红色变成了绿色,先别管是啥意思,记住:先 add 再 commit
  3. git commit -m ‘更新 css/style.css’将这个改动添加到 .git 仓库
  4. git status -sb发现没有变更了,这说明所有变动都被本地仓库记录在案了
注:git status -sb 用来显示当前文件状态的,看哪个文件变动了,方便进行 git add 操作
-sb: -s 表示总结(summary)-b 表示分支(branch)

本地使用总结:

  • git init,初始化本地仓库 .git
  • git status -sb,显示当前所有文件状态
  • git add 文件路径,用来将变动加到暂存区
  • git commit -m ‘信息’,用来正式提交变动,提交至 .git 仓库
  • 如果没有新的变动,只需依次执行 git add xxx 和 git commit -m ‘xxx’两个命令即可
  • git log 查看变更历史

二、将本地仓库上传到 GitHub

如何将我们创建的 git-demo-1 上传到 GitHub 呢?

  1. 点击 GItHub 上的 New repository 新建一个仓库,仓库名字(Repository name)可以随意,一般跟本地目录名一致,也叫 git-demo-1
  2. 其他什么都别选,记住了,然后点击 Create repodsitory 创建仓库,GitHub 会把后续的操作全都告诉你
  3. 点击第一行中的 SSH 按钮(划重点),如果你不点击就会默认使用 HTTPS 地址,千万不要用 HTTPS 地址,使用起来特别麻烦,每次都要输入用户名密码
  4. 下面 3 个方框里面的命令里面也会同步你选用的地址,所以命令中应该有 git@github.com:xxx/git-demo-1.git这样的内容,而不是 https://github.com/xxx/git-demo-1.git这样的
  5. 下面 3 个框中的命令就是 GitHub 告诉你后续的操作,框 1 是在 GitHub 上新建远程仓库时用的,框 2 就是本地上传仓库到 GitHub 上要用的
  6. 分别复制这两行并运行,刷新页面本地仓库就被上传到 GitHub 上了,搞定

三、下载 GitHub 上的仓库到本地

除了前面两种用法,还有一种就是直接在 GitHub 上创建一个仓库,然后下载到本地

  1. 跟第一种方法一样,创建一个仓库,不过这次设置完仓库名 git-demo-2 后,需要更改一些设置,Description(描述)随便写,选择 Public,勾选 Initialize this repository with a README,Add .gitignore 选择 Node,Add a License 选择 MIT License,然后创建仓库
  2. 这样仓库中就自动包含了 3 个文件 .gitignore、README.md、LISENCE,想要了解它们的作用请自行谷歌(.gitignoreLICENSE)
  3. 远程仓库已经创建好了,想要下载到本地需要使用 git clone命令,点击绿色按钮 clone and download 会看到一个弹出层,确保里面的地址是 SSH 地址(即点击弹出层右上角 Use SSH),然后复制框中的 SSH 地址
  4. 打开 Git Bash,进入一个安全的目录,比如桌面 cd ~/Desktop
  5. 运行 git clone 复制的 SSH 地址,你会发现桌面上多了一个 git-demo-2 的目录
  6. 进入这个目录 cd git-demo-2
  7. ll -la你会发现远程目录里的文件都在这出现了,你还会看到 .git 本地仓库,这时你就可以添加文件了,就是上面说过的 add 然后 commit

如何上传更新

如果本地目录有任何变动,只需按照以下顺序就能上传:

  1. git add 文件路径
  2. git commit -m '信息'
  3. git pull (当你的远程仓库被人更改过了,你直接 git push 不会成功,得先 pull 到本地再 push)
  4. git push
cd git-demo-1
touch index2.html
git add index2.html
git commit -m '新建 index2.html'
git pull 
git push
这样你在 git-demo-1 的页面就能看到 index2.html 了,easy

.gitignore

在项目创建 .gitignore 文件就可以指定那些文件不上传到远程仓库,比如:
.gitignore
/node_modules/
/.vscode/
这样就可以避免 node_modules/ 和 .vscode/ 目录被上传到 GitHub 了
记住:永远不要上传 node_modules 到 GitHub

其他

还有一些有用的命令:

git remote add origin git@github.com:xxx.git 将本地仓库与远程仓库关联
git remote set-url origin git@github.com:xxx.git 上一步手抖可以用此命令挽回
git branch 新建分支
git merge 合并分支
git diff 查看详细变化
git revert/git reset 两种后悔

资源

常见 Git 命令清单
菜鸟 Git 教程
读懂 diff
搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门
廖雪峰 Git 教程

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