库管理
克隆库
1 | git clone https://github.com/php/php-src.git |
历史管理
查看历史
1 | git log --pretty=oneline filename # 一行显示 |
标签功能
1 | git tag # 显示所有标签 |
回滚操作
1 | git reset 9fceb02 # 保留修改 |
取消文件的修改
1 | git checkout -- a.php # 取消单个文件 |
删除文件
1 | git rm a.php # 直接删除文件 |
移动文件
1 | git mv a.php ./test/a.php |
查看文件修改
1 | git diff # 查看未暂存的文件更新 |
暂存和恢复当前staging
1 | git stash # 暂存当前分支的修改 |
修改 commit 历史纪录
1 | git rebase -i 0580eab8 |
分支管理
创建分支
1 | git branch develop # 只创建分支 |
合并分支
1 | git checkout master # 切换到 master 分支 |
克隆远程分支
1 | git branch -r # 显示所有分支,包含远程分支 |
修复develop上的合并错误
- 将merge前的commit创建一个分之,保留merge后代码
- 将develop
reset --force
到merge前,然后push --force
- 在分支中rebase develop
- 将分支push到服务器上重新merge
强制更新到远程分支最新版本
1 | git reset --hard origin/master |
Submodule使用
克隆带submodule的库
1 | git clone --recursive https://github.com/chaconinc/MainProject |
clone主库后再去clone submodule
1 | git clone https://github.com/chaconinc/MainProject |
Git设置
Git的全局设置在~/.gitconfig
中,单独设置在project/.git/config
下。
忽略设置全局在~/.gitignore_global
中,单独设置在project/.gitignore
下。
设置 commit 的用户和邮箱
1 | git config user.name "xx" |
或者直接修改config文件
1 | [user] |
查看设置项
1 | git config --list |
设置git终端颜色
```bash
git config –global color.diff auto
git config –global color.status auto
git config –global color.branch auto