First Step

1
2
3
4
git config --global user.name "xxx"
git config --global user.email "xxx@gmail.com"

git config --global color.ui true

Create repo

1
2
git init
git add .

.git 目录说明:

hooks:记录一些校验用的 goal 值

info:配置,如 .gitignore

objects:主要目录,只要这个不丢所有信息都可以还原

refs:记录分支

remotes:远端分支

1
git commit -m ’first commit‘

此时 objects 和 refs 会略有变化

Clone One

1
git clone repourl

A Basic Workflow

  1. Edit file:vim / emacs / etc
  2. Stage the changes:git add (file)
  3. Review your changes:git status / git diff
  4. Commit the changes:git commit

Branching and Merging

Branching

创建分支

1
git branch xxx

查看分支状态

1
git branch

切换分支

1
git checkout xxx(分支号)

删除分支(-d 只可删除已被 merge 的空指针,-D 强制删除分支指针)

1
2
git branch -d xxx
git branch -D xxx

Merging

合并分支

1
git merge xxx

可视化解决冲突

1
git mergetool

Collaboration

拉取远端代码

1
git clone xxx

提交代码到远端,如果远端被别人修改了,此时会 push 失败

1
git push origin master

失败的话就要先把远端的新版代码 fetch 下来

1
git fetch

然后把 fetch 下来的新代码和自己改的代码 merge 之后就可以 push 了,或者直接 pull,不建议使用,git pull = git fetch + git merge

或者用 rebase 保证线性历史(下图等价于 git pull –rebase = git fetch + git rebase)

查看

1
git log xxx(默认 HEAD)

–oneline:简单参数展示

–graph:简易图像

–all:把所有分支展示

–decorate:把分支名也展示

返回两图差集:

1
git log A ^B

多人协作常用流程

  1. 新建远程分支
  2. git clone
  3. git branch -avv
  4. fit checkout -b dev origin/…
  5. git push origin <本地分支名>:<远程分支名>

others:

  1. 与远程代码同步

    1
    git pull origin <分支名>
  2. 更新远程路径列表

    1
    git remote update origin --prune xxx
  1. 添加远程路径

    1
    git remote add origin xxx