设置
- 设置全局用户名:
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 --stagedgit 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;