设置
- 设置全局用户名:
git config --global user.name <your-user-name>
- 设置全局邮箱:
git config --global user.email <your-email>
- 查看全局设置:
git config --global --list
- 设置项目用户名:
git config user.name <your-user-name>
- 设置项目邮箱:
git config user.email <your-email>
- 查看项目设置:
git config --list
基本操作
- 查看Git状态:
git status
- 查看远程仓库地址:
git remote -v
- 查看日志:
git log
- 查看常用帮助:
git help
- 查看全部帮助:
git help -a
- 查看某个命令帮助:
git help <command-name>
- 查看版本:
git --version
- 初始化:
git init
- 关联远程仓库:
git remote add origin <git-url>
- 克隆项目到本地:
git clone <git-url>
- 更新:
git pull
- 把master的更新merge到dev分支:
git checkout dev; git merge master
- 添加某个文件到版本控制中:
git add [dir-name/]<file-name>
- 添加某个文件夹到版本控制中:
git add <dir-name>
- 添加所有文件到版本控制中:
git add .
- 从版本控制中删除某个文件:
git rm [dir-name/]<file-name>
- 提交修改:
git commit -m "<your-commit-note>"
- 推送到远程仓库:
git push [origin master]
- 创建本地分支:
git checkout -b [new branch name]
- 推送本地分支到远程分支:
git push origin localBranchName:remoteBranchName
- 删除本地分支:
git branch -D [local branch name]
- 删除远程分支:
git push origin :[remote branch name]
(origin后面有空格) - fork后同步源更新内容:
- 查看远程状态:
git remote -v
- 确定一个将被同步给fork库的远程上游仓库:
git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
- 再次查看远程状态:
git remote -v
- 从上游仓库 fetch 分支和提交点,提交给本地 master,并会被存储在一个本地分支 upstream/master :
git fetch upstream
- 切换到本地主分支(如果不在的话):
git checkout master
- 把 upstream/master 分支合并到本地 master 上,这样就完成了同步,并且不会丢掉本地修改的内容:
git merge upstream/master
- 如果想更新到 GitHub 的 fork 上,直接:
git push origin master
- 查看远程状态:
检查
工作目录:git clone 后获得的一份本地的代码,也包括新编辑的,尚未加入版本控制的代码;
暂存区域:git add 后暂存起来,尚未 git commit 的代码;
本地仓库:git commit 后正式被版本控制记录起来的代码;
- 查看工作目录和暂存区域区别:
git diff
- 查看暂存区域和本地仓库区别:
git diff --staged
git diff --cached
取消修改
- 取消尚未add的修改:
git checkout -- <file-name>
- 取消已经add到未commit的修改:
git reset HEAD <file-name>
- 覆盖上次提交,用于已commit:
git commit --amend
- 撤销远程commit(回滚到某次commit):
git log; git reset [--hard] <commit-id>; git push --force
- 撤销最近一次本地commit:
git reset HEAD~1
- 恢复删除的文件:
git log --diff-filter=D --summary
查看所有删除的文件;git checkout $commit~1 filename
恢复文件,其中$commit
是上面获取到的commitId;