git config --list 查看配置
git config --global user.name zhiqsyr 配置用户名:zhiqsyr
git config --global user.email zhiqsyr@163.com 配置邮箱
git config --global credential.helper cache 设置记住密码(默认15分钟)
git config --global credential.helper 'cache --timeout=3600' 设置记住密码一个小时
git config --global credential.helper store 设置长期存储密码(在下一次拉远程代码输完帐号后生效)
git remote add origin http://name:password@gitee.com/name/project.git 增加远程地址,带上密码
git config --global --unset core.quoteapth 删除配置 core.quoteapth
git init 在当前目录建立 git 管理
git clone -b standalone http://gitee.com/name/project.git apache-tomcat-basecenter 克隆 standalone 分支到 apache-tomcat-basecenter 文件夹下
git status 查看工作区还没 add 的改动文件
git diff 查看工作区还没 add 的改动文件具体详情
git diff --cached 查看已 add 还没 commit 文件
git diff HEAD git diff 、git diff --cached 两条合并
git add <file> 将指定文件添加到索引库,以备 commit
git add . 将当前路径下所有新增或修改(不包括删除)的文件添加到索引库
git update-index --assume-unchanged <file> 文件已经加入版本管理,再做修改不希望加入提交队列
git update-index --no-assume-unchanged <file> 取消上面一条命令,还是加入提交队列
git reset <file> 将指定文件从索引库移除,commit 时不会提交该 file
git reset -- . 将当前路径下索引库中所有文件移除
git rest --hard <commit-hash-id> 回退到 <commit-hash-id> 版本
git checkout <commit-hash-id> <file> 回退文件 <file> 到 <commit-hash-id> 版本
git rm --cached <file> 删除本地版本库中指定文件
git rm -r --cached <file> 删除本地版本库中指定文件夹及其子文件,git rm -r -n --cached <file> 查看上述将要删除的文件列表
git log 查看提交历史(时间倒序)
git log -n 1 --stat 最近一次提交改动的文件(常用)
git log -n 1 -p 最近一次提交更改的细节
分支
git branch -a 查看所有分支
git branch -m standalone master 把名为 standalone 分支改为 master(-m 写成 -M,表示强制修改)
git branch -d test 删除本地 test 分支
git branch -d -r origin/test 删除远程 test 分支;删除后还要推送 git push origin :test
远程仓库
git remote -v 查看远程仓库信息(名称、地址)
git remote add origin https://gitee.com/iclassroom/WeiKe.git 为本地 git 库绑定远程库,并指定别名为 origin(https://gitee.com/iclassroom/WeiKe.git/ 更为精确)
git remote rm origin 解除绑定 origin 远程仓库
git pull origin master pull 远程 origin 仓库 master 分支;假如 refusing to merge unrelated histories,命令后加 --allow-unrelated-histories
合并分支
git diff master origin/standalone --stat 比较本地 master 与远程 origin/standalone 分支差异(需要本地先 git fetch orgin)
git rebase origin/standalone 合并远程 origin/standalone 分支代码到当前分支,不会产生交叉(单祖先,推荐)。此时 ours=origin/standalone,theirs=当前分支,原因
git checkout --theirs <file> 使用当前分支文件
git checkout --ours <file> 使用远程 origin/standalone 分支文件
git merge origin/standalone 合并远程 origin/standalone 分支代码到当前分支,会产生交叉(多重祖先,容易产生问题)。此时 ours=当前分支,theirs=origin/standalone