git的使用

git色彩显示

git默认不显示色彩

进行全局设置

1
2
3
4
5
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
git config --global color.interactive auto
git config --global color.ui auto

或者在.gitconfig写入配置

1
2
3
4
5
[color]
diff = auto
branch = auto
status = auto
interactive = auto

查看自己配置

1
git config --list

Git status乱码

设置core.quotepath为false

1
2
3
4
5
6
7
8
9
$ git status
... ...
"source/Picture/\350\277\233\347\250\213\347\212\266\346\200\201\345\233
... ...
$git config --global core.quotepath false
$ git status
... ...
source/Picture/进程状态图.jpg
... ...

Git组成

创建

  1. 克隆现有仓库 git clone ssh://user@domain.com/repo.git
  2. 创建一个新的本地仓库 git init

本地修改

  1. 查看本地仓库已更改文件信息 git status
  2. 查看对已版本控制文件的修改 git diff
  3. 添加当前工作空间所有修改到暂存区 git add .
  4. 添加单一文件修改到暂存区 git add -p <file>
  5. 将所有修改(工作空间和暂存区,工作空间修改可以省略git add)提交到当前分支 git commit -a
  6. 提交暂存区修改到当前分支 git commit
  7. Change the last commit. Don‘t amend published commits! git commit --amend

提交历史查看

  1. 显示所有提交历史记录,从最新的开始 git log
  2. 显示特定文件详细的修改历史 git log -p <file>
  3. 查看历史提交历史,只显示commit_id和注释 git log --pretty=oneline
  4. 逐行显示当前文件修改内容和修改时间 git blame <file>
  5. 一条综合信息展示的git log命令
    1
    git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen (%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --

分支和标签

  1. 列出所有现有分支 git branch -av
  2. 选择分支 git checkout <branch>
  3. 基于当前分支,创建一个新分支 git branch <new-branch>
  4. 创建一个分支,并切换过去 git checkout -b <new-branch>
  5. 基于远程分支,创建一个新的分支 git checkout --track <remote/branch>
  6. 删除本地分支 git branch -d <branch>
  7. 创建一个标签 git tag <tag-name>

跟新和发布

  1. 列出远程库的名称 加-v显示详细信息 git remote -v
  2. 显示特定远程库的信息 git remote show <remote>
  3. 添加一个远程库 git remote add <shortname> <url>
  4. 从远程库获取所有更新,但不合并 git fetch <remote>
  5. 从远程库获取所有更新,并合并到指定分支 git pull <remote> <branch>
  6. 将branch分支推送到远程库remote git push <remote> <branch>
  7. 从远程库删除一个分支 git branch -dr <remote/branch>
  8. 推送所有本地新增的标签 git push --tags

合并

  1. 合并某个分支到当前分支 git merge <branch>

撤销

  1. 丢弃工作环境中的所有本地修改 git reset --hard HEAD
  2. 丢弃特定文件中的本地修改 git checkout HEAD <file>
  3. Revert a commit (by producing a new commit with contrary changes) git revert <commit>
  4. 将头指针指向commit提交,并放弃所有修改 git reset --hard <commit>

将一个git仓库同时推送到两个源配置

在.git下找到config文件编辑,加入以下以下内容

1
2
3
4
5
6
... ...
# 仓库名
[remote "blog"]
# 要推送到仓库地址 可以填多个
url = git@github.com:CaseZheng/CaseZheng.github.io.git
url = git@git.coding.net:CaseZheng/Blog.git

Git碰到问题

fatal: no submodule mapping found in .gitmodules for path ‘xxx/xxx’

1
git rm --cached xxx/xxx

参考文档