一直使用 git,但都是通过软件进行操作,基本上也没有实际用过 git 命令。本着多掌握一些英语单词的思想,还是学习一下 git 使用为好。
因为我的机器里面已经用 sourceTree 登录过 github / coding.net 了,所以 git 不会再要求输入密码了。
从服务器克隆(下载)代码仓库
假设代码存放在 coding.net。项目地址:https://git.coding.net/yukapril/git-study.git
。
一般很少需要直接本地建立 git 仓库,之后上传到服务器上,这些活都应该是版本管理员做的,所以我就省略了。
首先,克隆代码到本地
1 | # 首先通过 cd 切换到你要克隆到的位置 |
命令格式为:git clone 远程地址 本地目录名字
,其中本地目录名字经常不写,使用 git 的项目名字。
这样,代码就被我们克隆到本地了。
git 操作流程
我们下载代码后,进行修改,要想最终上传到服务器,流程是这样的。
- 确定要提交的文件,添加到版本库的暂存区中。你可能这次修改了10个文件,但是仅仅打算提交2个文件。
- 针对第一步确定的文件,填写注释并提交到本地 git 仓库。
- 将本地仓库的变更,推送到服务器仓库。
注意:流程可以是1->2->3,也可以是反复的1->2,或者1->1->1再提交2,最后一起推送3。
修改了代码,添加文件到暂存区
首先,我们先要添加一些文件,就叫做 index.html
和 src/index.js
吧。随便写点什么都行。
检查下 git 文件状态
1 | git status |
结果为:
1 | On branch master |
git 提示我们有 (红色的)index.html
和 src/
没有添加到版本中。
添加文件到版本库中
我们要把本次即将提交的文件添加到版本库中,这样 git 才会追踪文件的修改。
添加方法很简单,常用有以下几种方法:
1 | git add . # 添加所有文件 |
如果本次我仅仅想提交 index.html
,但是我使用了 git add .
命令,这样会导致把其他目录也添加到本次待提交暂存区。咋办?我比较笨,不知道如何移除单独的目录,所以用的笨方法,将本次添加的文件全部重置掉:
1 | git reset |
之后重新添加就好了。
你可以试试 git status
,查看下状态:
1 | new file: index.html |
会有绿色的文件提示了。绿色表示新增加。
填写注释,提交代码到本地仓库
首先说明的是,必须要有上一步 git add
,添加文件到暂存区,否则这步没办法提交。
提交上一步的代码,建议写一点注释:
1 | git commit -m "add files" |
这里 -m
表示 message
,后面写注释就好了。
之后,我们查看下状态吧, git status
:
1 | On branch master |
它提示我们,现在本地的分支,比服务器的 origin/master
分支多了一条。
将本地的修改,推送到服务器
上面一步已经提示我们,本地比服务器代码更加超前,那么需要将本地的代码,推送到服务器上面。
git 命令是 git push <远程主机名> <本地分支名> <远程分支名>
1 | git push origin master master # 远程主机叫做origin,本地分支默认为master,提交到远程分支master上 |
一般来讲,我们都用最简单的,第四句。除非需要拉一个新的分支,否则其他写法很少用到。
这里还有一点需要说明,假设你是在17:00进行了 git commit
,之后忘记同步到服务器了。到了17:30想起来了,进行了 git push
。在服务器上查看你的提交历史,是17:00提交的,绝不是17:30。
总结
这次,学习了以下命令:
git clone
从服务器克隆代码到本地git status
查看文件状态git add
添加文件到暂存区git reset
重置文件暂存区git commit -m "message"
提交当前暂存区并加入注释git push
提交本地git变更到服务器