smileZZZZZ 2019-06-26
- 本文简单介绍使用GitHub对代码进行版本控制,包括添加SSHkey、配置Git、使用Git创建版本库并在GitHub上进行管理,主要目的是对学习内容进行总结以及方便日后查阅。
- 详细教程和原理可以参考廖雪峰的Git教程或猴子都能看懂的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 有三种方式,请按照需求选择。
其中1+2的最终效果=3
mkdir git-demo-1
cd git-demo-1
git init
,这句命令会在 git-demo-1
里创建一个 .git
目录ls -la
你就会看到 .git
目录,它就是一个「仓库」,不要进去看。在 git-demo-1
目录里面添加任意文件,假设我们添加了两个文件,分别是 index.html
和 css/style.css
touch index.html mkdir css touch css/style.css
运行 git status -sb
可以看到文件前面有 ??
号
touch index.html mkdir css touch css/style.css
这个 ??
表示 git不知道你要怎么对待这些变动。
git add
将文件添加到「暂存区」你可以一个一个地 add
git add index.html git add css/style.css
你也可以一次性 add
git add .
意思是把当前目录(.表示当前目录)里面的变动都加到「暂存区」
git status -sb
,可以看到 ??
变成了 A## Initial commit on master A css/style.css A index.html
A 的意思就是添加,也就是说你告诉 git,这些文件我要加到仓库里
git commit -m "信息"
将你 add过的内容「正式提交」到本地仓库(.git
就是本地仓库),并添加一些注释信息,方便日后查阅git add index.html git add css/style.css
你也可以一次性 commit
git commit . -m "添加了几个文件"
git status -sb
,发现没有文件变动了,这是因为文件的变动已经记录在仓库里了。git log
就可以看到历史上的变动:commit f0d95058cd32a332b98967f6c0a701c64a00810a Author: frankfang <[email protected]> Date: Thu Sep 28 22:30:43 2017 +0800 添加几个文件
git add
/ git commit
的一次完整过程。如果我想继续改文件,应该怎么做呢?
start css/style.css
会使用默认的编辑器打开 css/style.css
(macOS 上对应的命令是 open css/style.css
)css/style.css
里写入 body {background: red}
,保存退出git status -sb
发现提示中有一个 M
## master M css/style.css
这个 M
的意思就是 Modified,表示这个文件被修改了
此时你如果想让改动保存到仓库里,你需要先 git add css/style.css
或者也可以 git add .
注意:由于这个css/style.css
以前被我们 add 过,你往文章上面看,我们是 add 过css/style.css
的,所以此处的 git add操作可以省略,但我建议你使用 git 的前一个月,不要省略 git add。换句话说,每一次改动,都要经过
git add
和git commit
两个命令,才能被添加到 .git 本地仓库里。
git status -sb
发现 M 有红色变成了绿色。git status -sb
,会发现没有变更了,这说明所有变动都被本地仓库记录在案了。
git status -sb
是什么意思:git status
是用来显示当前的文件状态的,哪个文件变动了,方便你进行git add
操作。
-s
的意思是显示总结(summary)-b
的意思是显示分支(branch)- 所以
-sb
的意思是显示总结和分支。
至此,我们来总结一下用到的命令
git init
,初始化本地仓库 .git
git status -sb
,显示当前所有文件的状态git add 文件路径
,用来将变动加到暂存区git commit -m "信息"
,用来正式提交变动,提交至 .git
仓库如果有新的变动,我们只需要依次执行 git add xxx
和 git commit -m 'xxx'
两个命令即可。
别看本教程废话那么多,其实就这一句有用!先 add 再 commit,行了,你学会 git 了。
git log
查看变更历史如何将我们这个 git-demo-1 上传到 GitHub 呢?
git-demo-1
按照截图所示,除了仓库名,其他的什么都别改,这样你才能创建一个空仓库
点击一下 ssh,你就会使用默认的 HTTPS 地址。但是千万不要使用 HTTPS 地址,因为 HTTPS地址使用起来特别麻烦,每次都要输入密码,而 SSH 不用输入用户名密码。
为什么 SSH 不用密码呢,因为你已经上传了 SSH public key。详情请看上一篇博文使用GitHub(一)
由于我们已经有本地仓库了,所以图中下面半部分就是你需要的命令,我们一行一行拷贝过来执行
git remote add origin [email protected]:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/git-demo-1.git
,复制并运行它git push -u origin master
,运行它在建立空库的情况下,以上两步在本地建一个Git仓库和将Git仓库上传到GitHub上加起来就等同于下面的第3条。
上面两步讲了
- 在本地创建仓库
- 将本地仓库上传到 GitHub
这里讲第三种用法,那就是直接在 GitHub 创建一个仓库,然后下载到本地
git-demo-2
,这次就不创建空仓库了,而是自带 README
和 Lisence
的仓库,创建截图如下:
然后点击创建按钮。
git clone
命令下载到本地> 请确保弹出层里的地址是 SSH 地址,也就是 [email protected] 开头的地址,如果不是,就点击 Use SSH 按钮,就**点击 > Use SSH 按钮**。然后复制这个地址。
~/Desktop
。运行 git clone 你刚才得到的以[email protected]开头的地址
,运行完了你就会发现,桌面上多出一个 git-demo-2
。
cd git-demo-2
进入这个目录。.git
本地仓库。这时你就可以添加文件,git add,然后 git commit 了。三种方式都说完了,它们分别是:
- 在本地创建仓库
- 将本地仓库上传到 GitHub
- 下载 GitHub 上的仓库到本地
其实呢,还有很多种不同的方式,但是,记住这几种就行了,够用了。我们并不想要了解 git 的所有高级用法,我们的目的很明确:能通过 Git
命令使用 GitHub 就行
总结:
回顾一遍已经学到的命令:(这次只多了一个 git clone 命令)
git clone [email protected]:xxxx
,下载仓库git init
,初始化本地仓库 .gitgit status -sb
,显示当前所有文件的状态git add 文件路径
,用来将变动加到暂存区git commit -m "信息"
,用来正式提交变动,提交至 .git 仓库如果有新的变动,我们只需要依次执行 git add xxx
和 git commit -m 'xxx'
两个命令即可。
别看本教程废话那么多,其实就这一句有用!先 add 再 commit,行了,学会 git 了。
git log
查看变更历史你在本地目录有任何变动,只需按照以下顺序就能上传:
git add 文件路径 git commit -m "信息" git pull (一定不要忘记这一个命令) git push
为何要push之前要pull?
push是推送,pull是拉取的意思。假如你在远端修改了文件,然后本地并没有同步更新,这时候你push的时候就会出现错误,因为两端不同步了。多人合作的时候这种问题就会出现的更多,所以现在养成push之前要pull的习惯。
下面是例子
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
出现在里面了。