<commit_before># git 
[TOC]
##一. 使用前准备
  设置SSH Key
  
  ```
  ssh-keygen -t rsa -C "<EMAIL>"
  ```
  >过程需要创建密码。
  >id\_rsa 文件是私有秘钥，id\_rsa.pud是公开秘钥。

 查看id_rsa.pud文件内容
 
 ```
 cat ~/ssh/id_rsa.pud
 ```

 测试是否成功

 ```
 ssh -T git@github.com
 ```
 
 ---
##二. 本地操作
 
 
 ```
 git status
 git add .
 git commit -m'change'
 (git commit -am "注释" //代替上面两步)
 git pull
 git push
 ```
 
 ```swift
 git log
 git log --pretty=short
 git log -p //显示文件的改动情况
 git log -p 文件名 //显示某一文件的改动
 git log --graph //以图表形式查看分支
 ```
 
 ```
 git diff //查看更改前后的差别
 git diff HEAD //查看本次提交和上次提交之间的差别
 ```
 
 ```
 git branch
 git checkout -b //创建、切换分支 
 git checkout - //切回上一个分支
 ```

 ```
 git merge --no-ff 其他分支名// 合并分支 ，参数--no-ff用于启动编辑器，录入合并提交的信息。
 ```

 ```
 git reset --hard 对应版本目标时间点的哈希值//回溯历史版本
 ```

 ```
 git reflog //查看当前仓库的操作日志，一般用于查询左右操作对应的哈希值以用于推进历史版本
 ```
 
 ```
 git commit --amend // 修改提交信息
 git rebase -i //压缩历史
 ```

 >错字漏字等失误称作“typo”，所以修改后的提交信息可记为“Fix typo”

---
##三. 远程仓库操作

###1. 推送至远程仓库

 ```
 git remote add origin(/*会自动将远程仓库名设置为此*/) 远程仓库地址//添加远程仓库，将某一远程仓库设置为本地仓库的远程仓库
 ```
 
 ```
 git push //推送至远程仓库
 例：git push -u origin master 
 /*
 1. 将当前分支的内容推送到远程仓库origin的master分支；
 2. -u参数可以在推送的同时，将origin仓库的master分支设置为本地仓库当前当前分支的upstream（上游）；
    添加了这个参数，将来运行git pull命令从远程仓库获取内容时，本地仓库的这个分支就可以直接从origin的master分支获取内容，省去了另外添加参数的麻烦。
 */
 例：git checkout -b feature-D //本地创建feature-D分支 
   git push -u origin feature-D //将本地创建的feature-D分支推送到远程的同名分支下，其会默认在远程创建一个feature-D分支。
 ```

###2. 从远程仓库获取
待续


---
 请喝杯饮料：🍵
<center>
    <p><img src="http://7xoxd4.com1.z0.glb.clouddn.com/屏幕快照%202015-12-12%20下午11.34.02.png" align="center"></p>
</center>


<commit_msg>change<commit_after># git 
[TOC]
##一. 使用前准备
  设置SSH Key
  
  ```swift
  ssh-keygen -t rsa -C "<EMAIL>"
  ```
  >过程需要创建密码。
  >id\_rsa 文件是私有秘钥，id\_rsa.pud是公开秘钥。

 查看id_rsa.pud文件内容
 
 ```swift
 cat ~/ssh/id_rsa.pud
 ```

 测试是否成功

 ```swift
 ssh -T git@github.com
 ```
 
 ---
##二. 本地操作
 
 
 ```swift
 git status
 git add .
 git commit -m'change'
 (git commit -am "注释" //代替上面两步)
 git pull
 git push
 ```
 
 ```swift
 git log
 git log --pretty=short
 git log -p //显示文件的改动情况
 git log -p 文件名 //显示某一文件的改动
 git log --graph //以图表形式查看分支
 ```
 
 ```swift
 git diff //查看更改前后的差别
 git diff HEAD //查看本次提交和上次提交之间的差别
 ```
 
 ```swift
 git branch
 git checkout -b //创建、切换分支 
 git checkout - //切回上一个分支
 ```

 ```swift
 git merge --no-ff 其他分支名// 合并分支 ，参数--no-ff用于启动编辑器，录入合并提交的信息。
 ```

 ```swift
 git reset --hard 对应版本目标时间点的哈希值//回溯历史版本
 ```

 ```swift
 git reflog //查看当前仓库的操作日志，一般用于查询左右操作对应的哈希值以用于推进历史版本
 ```
 
 ```swift
 git commit --amend // 修改提交信息
 git rebase -i //压缩历史
 ```

 >错字漏字等失误称作“typo”，所以修改后的提交信息可记为“Fix typo”

---
##三. 远程仓库操作

###1. 推送至远程仓库

 ```swift
 git remote add origin(/*会自动将远程仓库名设置为此*/) 远程仓库地址//添加远程仓库，将某一远程仓库设置为本地仓库的远程仓库
 ```
 
 ```swift
 git push //推送至远程仓库
 例：git push -u origin master 
 /*
 1. 将当前分支的内容推送到远程仓库origin的master分支；
 2. -u参数可以在推送的同时，将origin仓库的master分支设置为本地仓库当前当前分支的upstream（上游）；
    添加了这个参数，将来运行git pull命令从远程仓库获取内容时，本地仓库的这个分支就可以直接从origin的master分支获取内容，省去了另外添加参数的麻烦。
 */
 例：git checkout -b feature-D //本地创建feature-D分支 
   git push -u origin feature-D //将本地创建的feature-D分支推送到远程的同名分支下，其会默认在远程创建一个feature-D分支。
 ```

###2. 从远程仓库获取
待续


---
 支付宝扫一扫，请喝杯饮料：🍵
<center>
    <p><img src="http://7xoxd4.com1.z0.glb.clouddn.com/屏幕快照%202015-12-12%20下午11.34.02.png" align="center"></p>
</center>



{'fraction_non_alphanumeric': 0.16767007826610475, 'fraction_numerical': 0.015653220951234198, 'mean_word_length': 3.057387057387057, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2097753', 'n_tokens_mistral': 2060, 'n_tokens_neox': 2292, 'n_words': 294}