git checkout filename //放弃单个文件的修改
git checkout //放弃当前目录下的修改
git checkout master 将分支切换到master
git checkout -b master 如果分支存在则只切换分支,若不存在则创建并切换到master分支
git init
git add src
git commit -a -m "added target_qty into production_report" //加了-a 忽略本地缓存
//查看 git 配置
git config -l
//代理设置
git config --global http.proxy https://user:password@10.167.32.133:8080
//删除HTTP代理
git config --system (或 --global 或 --local) --unset http.proxy
git config --system (或 --global 或 --local) --unset https.proxy
//查看日志
git log -1
创建版本库
$ git clone <url> #克隆远程版本库
$ git init #初始化本地版本库
修改和提交
$ git status #查看状态
$ git diff #查看变更内容
$ git add . #跟踪所有改动过的文件
$ git add <file> #跟踪指定的文件
$ git mv <old><new> #文件改名
$ git rm<file> #删除文件
$ git rm --cached<file> #停止跟踪文件但不删除
$ git commit -m "commit messages" #提交所有更新过的文件
$ git commit --amend #修改最后一次改动
查看提交历史
$ git log #查看提交历史
$ git log -p <file> #查看指定文件的提交历史
$ git blame <file> #以列表方式查看指定文件的提交历史
撤销
$ git reset --hard HEAD #撤销工作目录中所有未提交文件的修改内容
$ git checkout HEAD <file> #撤销指定的未提交文件的修改内容
$ git revert <commit> #撤销指定的提交
$ git log --before="1 days" #退回到之前1天的版本
分支与标签
$ git branch #显示所有本地分支
$ git checkout <branch/tag> #切换到指定分支和标签
$ git branch <new-branch> #创建新分支
$ git branch -d <branch> #删除本地分支
$ git tag #列出所有本地标签
$ git tag <tagname> #基于最新提交创建标签
$ git tag -d <tagname> #删除标签
合并与衍合
$ git merge <branch> #合并指定分支到当前分支
$ git rebase <branch> #衍合指定分支到当前分支
远程操作
$ git remote -v #查看远程版本库信息
$ git remote show <remote> #查看指定远程版本库信息
$ git remote add <remote> <url> #添加远程版本库
$ git fetch <remote> #从远程库获取代码
$ git pull <remote> <branch> #下载代码及快速合并
$ git push <remote> <branch> #上传代码及快速合并
$ git push <remote> :<branch/tag-name> #删除远程分支或标签
$ git push --tags #上传所有标签
git checkout -b 2.0
git branch --set-upstream-to=origin/2.0
git pull
强制更新本地
git fetch 从远程下载最新版本,而不尝试合并或变基任何内容。
然后 git reset 将主分支重置为您刚刚获取的内容。 --hard 选项更改工作树中的所有文件以匹配 origin/master 中的文件
维护当前的本地提交
值得注意的是,可以通过在重置之前从 master 创建一个分支来维护当前的本地提交:
git checkout master
git branch new-branch-to-save-current-commits
如果不需要备分,可以直接执行下面两句
git fetch --all
git reset --hard origin/master