git 笔记

来源:互联网 发布:mmd h 动作数据 编辑:程序博客网 时间:2024/06/06 15:42
git 流程安装:1 yum -y install git*2 源代码安装 make prefix=/usr/local allmake prefix=/usr/local install安装文档:make prefix=/usr/local doc infomake prefix=/usr/local install-doc install-html install-info使用文档:git <sub-command> --helpgit help <sub-command>git initgit add * [git clone url]git commit -m "init"git pullgit push origin developgit push -f //强制推修改上一次commit是的msggit commit --amend 进入vim编辑界面[--allow-empty 允许空提交]修改历史版本中的msg git rebase -i <commit-id>删除上一版本中的某个文件git rm --cached fileName将修改过的文件加入暂存区git add -u (update)将添加删除修改的文件提交到暂存区git add -A (All)git add -i (进入交互模式)git add -f file(提交忽略的文件到暂存区)对一个文件的内容进行选择性提交git add -pgit add filename 逆向操作git reset -- filename git reset HEAD  filename文件差异比较git diff filepath [--word-diff 逐行逐字比较 默认按行比较] [--cache 对比暂存区的文件差异 默认比较未commit的文件]比较上一版本git diff HEAD^^ -- filegit diff [--word-diff 逐字比较]git diff HEADgit diff --cached原基线和原暂存区比较git diff stash@{1}^2^ stash@{1}^2原暂存区和原工作区比较git diff stash@{1}^2 stash@{1}原基线和原工作区比较git diff stash@{1}^1 stash@{1}用stash@{1} 来回复进度git stash apply stash@{1}git diff B A //比较里程碑B Agit diff A   //比较工作区 里程碑Agit diff --cached A //暂存区 git diff //工作区 暂存区git diff --cached //暂存区 HEADgit diff HEAD //工作区 headgit diff path1 path2 //非git文件比较保存工作进度git stash查看保存的工作进度列表git stash list 取出最近保存的工作进度git stash pop切换分支git checkout <new_branch>基于HEAD~3版本创建一个本地分支git checkout -b newbranch HEAD~3撤销工作区中尚未提交的修改git checkout -- filenamegit checkout .(全部)使用master分支中的文件替换工作区和暂存区的全部或部分文件 较危险git checkout HEAD . [filename]恢复到之前保存的工作进度git stash pop删除 (默认删除最近的)git stash drop  git stash sava "msg"清楚所有的进度git stash clear基于进度创建分支git stash branch清理文件 同时会清理掉本地已修改的git代码git clean -fdxgit reset --hard测试可能删除的文件git clean -nd删除暂存区文件 工作区不受影响git rm --cache filename暂存区目录树被master重写git reset HEAD引用退一步 暂可以理解为commit 撤销一次git reset --soft HEAD^ git reset --mixed HEAD^ 设置别名git config --global(当前用户) [--system 面向全部用户] alias.st status开启颜色设置git config -global color.ui true搜索工作区文件内容git grep key查看工作区状态git status [-s 精简格式输出] [-b(branch) 列出属于哪个分区] [--ignored]编辑git config文件git config -e  [默认对当前项目下的.git/config 文件编辑 (版本库级别)][--global 对当前用户全局的git配置文件编辑 .gitconfig (用户级别)][--system 系统级编辑 /etc/gitconfig (系统级别)]设置config下的值git config a.b.c d  表示设置 节点[a "b"]c = d查看日志git log [--stat 文件变更统计]git log -p -2 //-p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新git log --author=<pattern> //查看某人提交git log --grep=<pattern> [filename]git log filename //查看文件操作记录git log --oneline --graph --decorate //图形查看提交树重置master到某一版本git reset  --hard HEAD^(head^表示父版本  提交ID->sha1)恢复master到某一版本git reflog show master | head -n找到需要的ID 执行 git reset --hart  <commit-ID>切换URLgit remote set-url origin git@127.0.0.1:tete/api.git已注册的远程版本库git remote -v注册远程版本git remote add new-remote [--no-tags 避开远程版本库中的里程碑引入本地] file:///path修改远程版本库名git remote rename new-remote new-remote1获取所有远程版本库更新git remote update忽略上一个命令的远程更新git config remote.remotename.skipDefaultUpdate true删除注册的远程版本库git remote rm remotename将最近3个提交转换为补丁文件git format-patch [-s 当前用户签名] HEAD~3..HEAD工作区中搜索git grep 'wxpay'查看提交日志中每次修改的文件及修改大小git log --pretty=fuller --statgit log [--pretty=oneline精要 fuller提交者 raw原始数据]git log [--graph 显示分支图] --oneline [-p 显示日志的时候显示改动] [--stat 变更概要]重置到某一次提交git reset --hard 9eaass0git reflog show master  | head -6git reset -- hard master@{2}打tag 里程碑git tag -m "tag msg" tagname [ID 可选 默认HEAD]获取tag名git describegit tag -n5 //获取五个tag名git tag -d tagname //删除tag git tag -m "f update" tagname HEAD^//-f 强制更新显示里程碑D及其提交git show D -- stat图形工具gitk --all //显示所有分支gitk --since="2 weeks ago"git mergetool //图形合并工具gitg &qgit &文件追朔git blame filepath [-L n,m 查看某段]rebasegit rebase --onto <newbase> <since> <till> //自since到tillgit rebase --onto <-i ...> <--continue> <--skip> <--abort>-i 变基过程中被中断时可采用的命令 继续变基或终止 等--continue 变基过程中遇到冲突而暂停时 先解决冲突后添加到暂存区不提交 然后在恢复变基操作时使用--skip     变基过程中遇到冲突而暂停时 跳过当前提交而使用--abort    变基过程中遇到冲突而暂停时 终止变基操作 回到之前分支时使用克隆git clone [--bare] [--mirror] <repository> <local-dir><repository> 源 <local-dir>本地目录--bare 克隆裸版本库 已dir.git .git为后缀--mirror 同上 不过对上有版本库进行了注册 这样可以使用git fetch与上游版本库持续同步丢弃relog 默认90天之前的git relog expire --all git relog expire=now --all //将全部relog过期对版本库进行整理git gc git gc --prune=now 清理未关联的对象git gc --auto分支git branch [-v 查看分支 -r查看远程分支]git branch branchnamegit branch branchname start-point //从point开始做分支git branch [-d 删除分支] [-D 强制删除分支]git branch [-m -M 强制重命名]将开发中的分支develop,合并到稳定分支mastergit checkout mastergit merge developgit commit开发中的分支develop,衍合到稳定分支mastergit checkout mastergit rebase developgit rebase --continue

0 0