安装git
Mac:https://sourceforge.net/projects/git-osx-installer/
Windows:https://git-for-windows.github.io/
Linux:sudo apt-get install git
命令(都要以git开头)
- 检验是否安装git

- 第一步,我们先新建一个文件夹,在文件夹里新建一个文件
1.mkdir test 新建一个test目录
2.cd test 进入到test目录
3.touch a.md 新建a.md文件

- 初始化git仓库

- git status(查看状态)

- git add 文件名.md(提交文件)提交后输入git status

- 此时可以输入git rm --cached 这个命令去移除这个缓存。
- git commit
- 输入git commit -m 'first commit'
- commit 是提交的意思,-m 代表是提交信息,执行了以上命令代表我们已经正式进行了第一次提交。

- 在输入git status 查看

- git log
-
git log 命令可以查看所有产生的 commit 记录,所以可以看到已经产生了一条 commit 记录,而提交时候的附带信息叫 'first commit' 。
image.png
- git add 和 git commit
疑问?
我想要提交直接进行 commit 不就行了么,为什么先要再 add 一次呢?首先 git add 是先把改动添加到一个「暂存区」,你可以理解成是一个缓存区域,临时保存你的改动,而 git commit 才是最后真正的提交。这样做的好处就是防止误提交。
- git branch(查看当下分支情况)
branch 即分支的意思,分支的概念很重要,尤其是团队协作的时候,假设两个人都在做同一个项目,这个时候分支就是保证两人能协同合作的最大利器了。举个例子,A, B俩人都在做同一个项目,但是不同的模块,这个时候A新建了一个分支叫a, B新建了一个分支叫b,这样A、B做的所有代码改动都各自在各自的分支,互不影响,等到俩人都把各自的模块都做完了,最后再统一把分支合并起来。

- git branch a 就新建了一个名字叫 a 的分支,输入git branch查看分支情况

- git checkout a(切换至a分支)

- git checkout -b a(新建a分支并且切换至a)

- git branch -d a(删除分支a)git branch -D(强制删除)

- git merge(合并到主分支master上)
- 首先切换至master (
git checkout master
)

- 执行 git merge a 进行合并

- git tag(查看标签)git tag v1.0 (新建v1.0标签)

- git checkout v1.0切换至1.0标签
向GitHub仓库提交代码
- SSH
- 概念:
简单点说,SSH是一种网络协议,用于计算机之间的加密登录。目前是每一台 Linux 电脑的标准配置。而大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,所以想要在 GitHub 提交代码的第一步就是要先添加 SSH key 配置。
- 生成SSH key
Linux 与 Mac 都是默认安装了 SSH ,而 Windows 系统安装了 Git Bash 应该也是带了 SSH 的。大家可以在终端(win下在 Git Bash 里)输入 ssh 如果出现以下提示证明你本机已经安装 SSH, 否则请搜索自行安装下。

紧接着输入 ssh-keygen -t rsa ,什么意思呢?就是指定 rsa 算法生成密钥,接着连续三个回车键(不需要输入密码),然后就会生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,id_rsa.pub 就是公钥。这两文件默认分别在如下目录里生成:
Linux/Mac 系统 在 ~/.ssh 下,win系统在 /C/Documents and Settings/username/.ssh 下,都是隐藏文件。
接下来要做的是把 id_rsa.pub 的内容添加到 GitHub 上,这样你本地的 id_rsa 密钥跟 GitHub 上的 id_rsa.pub 公钥进行配对,授权成功才可以提交代码。

-
GitHub 上添加 SSH key
1.首先点击设置->SSH和GPG密匙->新的SSH密匙
image.png

2.查看 id_rsa.pub 文件
Linux/Mac 用户执行以下命令:
cd ~/.ssh
cat id_rsa.pub
Windows用户,设置显示隐藏文件,可以使用 EditPlus 或者 Sublime 打开复制就行了。

3.配置密匙(GPG不用理会)

- Push & Pull
Push :直译过来就是「推」的意思,什么意思呢?如果你本地代码有更新了,那么就需要把本地代码推到远程仓库,这样本地仓库跟远程仓库就可以保持同步了。
代码示例: git push origin master
意思就是把本地代码推到远程 master 分支。
Pull:直译过来就是「拉」的意思,如果别人提交代码到远程仓库,这个时候你需要把远程仓库的最新代码拉下来,然后保证两端代码的同步。
代码示例: git pull origin master
意思就是把远程最新的代码更新到本地。一般我们在 push 之前都会先 pull ,这样不容易冲突。
- 提交代码
1.Clone自己的项目
首先查到自己的仓库地址

在终端中输入
git clone git https://github.com/PersistXL/test2.git
https://github.com/PersistXL/test2.git(是你刚才复制的地址)
2.终端进入你刚才clone的项目名下(cd test2
)
刚才Clone的项目本就是一个git仓库所以不需要初始化仓库的操作(也就是
git init
)
3.你现在可以对你Clone的项目进行修改或者添加了,添加完成后
- 输入下面的代码进行添加到本地仓库
git add a.md
4.现在就可以提交到本地了
- 输入下面的代码提交到本地仓库
git commit -m 'first commit'
first commit 为你第几次提交的名称,自定义,方便以后在远程仓库查看修改时哪里出了问题
5.现在可以提交到远程仓库了
- 输入以下命令关联到远程仓库中
git push origin master

参考文献:
http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=503177922&idx=1&sn=6ef35c039a6564b1cec6343754a6c004&mpshare=1&scene=1&srcid=0923XyCoXwmTFesJeKshiOUa#rd