# github * SSH `C:\Users\yingbo\.ssh` * 创建: `ssh-keygen -t rsa -C '邮件地址'` * 测试: `ssh -T git@github.com` * 注意:上面创建语句完成后会让你输入密码,直接回车,不然之后提交的时候每次都会让你输入密码 * `git init` 初始化仓库 * `git status` 查看仓库状态 * `git add '文件名'` 向暂存区添加文件,如果添加所有文件,'文件名' => * * `git commit -m 'text'` * 提交,text为提交描述 * 直接 `git commit`会进入详细编辑的界面 * 第一行简介 * 第二行空行 * 第三行详情 * `git log` 提交日志 * 尾缀 * `--pretty = short` 只显示概要 * `目录名/文件名` 只显示该目录或者该文件的记录 * `-P` 显示改动 * `-P` 文件名 显示该文件的改动 * `git diff` 查看区别 * `git diff HEAD` 本次与上次的区别 * `git branch` 显示所有分支 * `git checkout -b name` 创建name分支并进入( 等同于下边两步) * => `git branch name` * => `git checkout name` * `git checkout -` 切换回上一个分支 * 注:最好每做一件事就创建一个新的分支,保证代码无误再合并到主分支,保障主分支随时可用 * 合并分支 * `git checkout '合并到的分支名'` * `git merge --no--ff '合并后消失的分支名'` * `git log --graph` 图表形式提交日志 * `git reset --hard '哈希值'` 回溯历史版本 * `git reflog` 操作日志 * 查看冲突并解决 git merge 后提示有冲突,此时冲突文件会被修改,进文件改成想要的样子,然后git add,git commit,done! * `git commit --amend` 修改上一条的提交信息 * 压缩历史 * `git commit -am` 一次性进暂存然后提交 * 注:修改名称为 typo 例: fix typo * `git rebase -i HEAD~2` 合并两次最新提交 * 进入编辑器 * pick 7a34294 Add feature-C * pick ofba227 Fix typo 将typo -> fixup 然后保存 -> ok * 添加远程仓库 * `git remote add origin '网址'` * `git push -u origin master` * //将当前分支推送到origin远端的master分支(master不存在的话自动新建) * `git clone '网址'` 克隆仓库 * `git branch -a` 同时显示本地和远端的分支 * `git checkout -b feature-D origin/feature-D` * //新建本地feature-D分支并把远端的feature-D同步过来 * `git fetch` 与 `git pull` 的区别 * git pull = git fetch + git margin * 删除分支 * `git branch -D '分支名'` * PR总结 ``` git checkout -b //创建分支 coding... git commit -m '' //提交 git pushd -u origin //推远端 web -> pr git branch -d //删除本地 git push origin --delete //删除远端 ```