当你不理解一段代码什么意思的时候,你会用就好。时间久了你会懂的。css
2015年本身刚学前端的时候,使用git bash 上传代码到github时困难的要死。好多东西不明白不理解。随着工做的积累,如今回头本身随便wanwan2半小时就配置好了。如今整理好教程。一个是为了验证一句话。一个是为后来者挖好井。html
进入 https://github.com/settings/keys前端
rm -rf ~/.ssh/*
把现有的 ssh key 都删掉,这句命令行若是你多打一个空格,可能就要重装系统了,建议复制运行。ssh-keygen -t rsa -b 4096 -C "你的邮箱"
,注意填写你的邮箱!cat ~/.ssh/id_rsa.pub
,获得一串东西,完整的复制这串东西ssh -T git@github.com
,你可能会看到这样的提示:Permission denied (publickey).
就说明你失败了,请回到第 1 步重来,是的,回到第 1 步重来;若是你看到 Hi FrankFang! You've successfully authenticated, but GitHub does not provide shell access.
就说明你成功了!好了,终于 TMD 添加了一个无聊的 SSH key,不要问我这个有什么用,由于一下子你就会用到它,你想了解原理就看这篇 文章git
若是要讲清楚,太浪费时间了,咱们只是想用用 GitHub 而已。github
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"
五句话,依次运行。不执行的话,电脑可能会爆炸你信不信。shell
使用 git 有三种方式,请按照你的需求选择vim
mkdir git-demo-1
cd git-demo-1
git init
,这句命令会在 git-demo-1 里建立一个 .git 目录ls -la
你就会看到 .git 目录,它就是一个「仓库」,不要进去看,这仓库里面有毒,别进去!touch index.html
mkdir css
touch css/style.css
git status -sb
能够看到文件前面有 ?? 号 ## Initial commit on master ?? css/ ?? index.html这个 ?? 表示 git 一脸懵逼,不知道你要怎么对待这些变更。
git add index.html
git add css/style.css
git add .
意思是把当前目录(.表示当前目录)里面的变更都加到「暂存区」git status -sb
,能够看到 ?? 变成了 A ## Initial commit on master A css/style.css A index.htmlA 的意思就是添加,也就是说你告诉 git,这些文件我要加到仓库里
git commit index.html -m '添加index.html'
git commit css/style.css -m "添加 css/style.css"
git commit . -m "添加了几个文件"
git status -sb
,发现没有文件变更了,这是由于文件的变更已经记录在仓库里了。这时你使用 git log 就能够看到历史上的变更:安全
commit f0d95058cd32a332b98967f6c0a701c64a00810a Author: frankfang <frankfang1990@gmail.com> Date: Thu Sep 28 22:30:43 2017 +0800 添加几个文件
若是我想继续改文件,应该怎么作呢?bash
start css/style.css
会使用默认的编辑器打开 css/style.css(macOS 上对应的命令是 open css/style.css
)body {background: red}
,保存退出git status -sb
发现提示中有一个 M ## master M css/style.css这个 M 的意思就是 Modified,表示这个文件被修改了
git add css/style.css
或者也能够 git add .
git status -sb
发现 M 有红色变成了绿色,红色和绿色有啥区别呢?别管它们的区别,记住我说的,先 add,再 commit,等你熟练以后再去理解区别。git commit -m "更新 css/style.css"
,这个改动就被提交到 .git 本地仓库了。再说一次,不要去 .git 目录里面,那里的东西你一无所知。git status -sb
,会发现没有变动了,这说明全部变更都被本地仓库记录在案了。git status -sb
是什么意思:git status 是用来显示当前的文件状态的,哪一个文件变更了,方便你进行 git add 操做。-sb 选项的意思就是,SB都能看懂,哈,这是开玩笑,-s 的意思是显示总结(summary),-b 的意思是显示分支(branch),因此 -sb 的意思是显示总结和分支。至此,咱们来总结一下用到的命令ssh
如何将咱们这个 git-demo-1 上传到 GitHub 呢?
git remote add origin https://github.com/xxxxxxxxxx/git-demo-1.git
, 若是你发现这个地址是 https 开头的,那你就作错了,还记得吗,咱们要使用 SSH 地址,GitHub 的 SSH 地址是以 git@github.com 开头的。git remote add origin git@github.com:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/git-demo-1.git
,复制并运行它git push -u origin master
,运行它上面两步讲了
这里将第三种用法,那就是直接在 GitHub 建立一个仓库,而后下载到本地。
cd ~/Desktop
。运行。git clone 你刚才获得的以git@github.com开头的地址
,运行完了你就会发现,桌面上多出一个 git-demo-2 目录。我再说一遍,桌面上多出一个 git-demo-2 目录。我再说一遍,桌面上多出一个 git-demo-2 目录。这个细节很重要,不少小白发现不了这个细节,我也不知道他们是眼瞎仍是怎么了……ls -la
你会看到,远程目录的全部文件都在这里出现了,另外你还看到了 .git 本地仓库。这是你就能够添加文件,git add,而后 git commit 了。三种方式都说完了,它们分别是:
其实呢,我还能够说不少种不一样的方式,可是,你记住这几种就好了,够你用的了。咱们并不想要了解 git 的全部高级用法,咱们的目的很明确:能经过 Git 命令使用 GitHub 就行。
咱们再回顾一遍已经学到的命令:(此次只多了一个 git clone 命令)
在本地任意一个文件夹中,Git init 初始化本地仓库 会出现一个.git 。 而后经过git remote add origin git@github.com:your name/repository name.git。与远程仓库创建连接。创建成功没有反应、接下来你须要git pull origin master 先把远程文件下载下来、Git status 看下状态。没有再远程仓库的就会变成红色,接下来就是:Git add Git commit -m Git push -u origin master(第一次须要,之后直接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 的 GitHub 页面,就能看到 index2.html 出如今里面了。是否是很……简……单……呢……
还有一些有用的命令
git remote add origin git@github.com:xxxxxxx.git
将本地仓库与远程仓库关联git remote set-url origin git@github.com:xxxxx.git
上一步手抖了,能够用这个命令来挽回git branch
新建分支git merge
合并分支git stash
通灵术git stash pop
反转通灵术git revert
后悔了git reset
另外一种后悔了git diff
查看详细变化学 git 命令都够大家学一周的,因此别妄想如今就掌握它,切记。
注意只能预览 HTML,不能预览 Markdown。
「<h1>这是一个HTML</h1>」