名词
- master: 默认开发分支
- origin: 默认远程版本库
- Index / Stage:暂存区
- Workspace:工作区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
一、新建代码库
# 在当前目录新建一个Git代码库
git init
# 新建一个目录,将其初始化为Git代码库
git init [project-name]
# 下载一个项目和它的整个代码历史
git clone [url]
二、配置
Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。
# 显示当前的Git的配置
git config --list
# 编辑Git配置文件
git config -e [--global]
# 设置提交代码时的用户信息
git config [--global] user.name "[name]"
git config [--global] user.email "[email address]"
三、增加/删除/修改文件
# 查看状态
git status
# 查看变更内容
git diff
# 添加指定文件到暂存区
git add [file1] [file2] ...
# 添加指定目录到暂存区,包括子目录
git add [dir]
# 添加当前目录的所有文件到暂存区
git add .
# 删除工作区文件,并且将这次删除的文件放入暂存区
git rm [file1] [file2] ...
四、代码提交
# 提交暂存区到仓库
git commit -m [message]
# 提交暂存区的指定文件到仓库区
git commit [file1] [file2] ... -m [message]
# 提交工作区自上次commit之后的变化,直接到仓库
git commit -a
# 提交时显示所有diff信息
git commit -v
五、分支
# 显示所有本地分支
git branch
# 列出所有的远程分支
git branch -r
# 列出所有本地分支和远程分支
git branch -a
# 新建一个分支,但依然停留在当前分支
git branch [branch-name]
# 删除分支
git branch -d [branch-name]
# 删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 切换指定分支,并更新工作区
git checkout [branch-name]
# 切换到上一个分支
git checkout -
# 合并指定分支到当前分支
git merge [branch]
# 选择一个commit,合并到当前分支
git cherry-pick [commit]
六、远程操作
# 下载远程仓库的所有变动
git fetch [remote]
# 取回远程仓库的变化,并与本地分支合并
git pull [remote] [branch]
# 显示所有远程仓库
git remote -v
# 显示某个远程仓库的信息
git remote show [remote]
# 增加一个新的远程仓库,并命名
git remote add [shortname] [url]
# 上传本地指定分支到远程仓库
git push [remote] [branch]
# 强行推送到当前分支到远程仓库,即使有冲突
git push [remote] --force
# 推送到所有分支到远程仓库
git push [remote] --all