本篇文章用于记录Git高级用法,新手可以看我的另一篇文章:Git基础教学。

Git git fetch 是git pull 的细分步骤,git pull 包含了git fetch git pull origin master 上述命令其实相当于git fetch + git merge 在实际使用中,git fetch更安全一些 因为在merge前,我们可以查看更新情况,然后再决定是否合并 git clone git pull 区别: git clone 直接把整个项目下载下来,里面包括项目.git 文件,会搞出来两个.git文件;而git pull 需要 git remote add 之后才可以 只有一个.git文件。 git fetch 实战用途:用于获取远程仓库各个分支的提交信息,但不会主动合并到工作区 git fetch origin 下载远程仓库所有分支的提交 git fetch origin + 分支名字 只同步某个分支的提交 git merge origin/分支名 在当前分支合并特定远程分支的提交 git branch 查看本地仓库分支 git branch -r 查看远程仓库分支 git branch -a 查看所有仓库分支 删除本地远程仓库分支信息 git branch -r -d + origin/仓库分支名字 切换分支 git checkout + 分支名字 创建分支 git checkout -b + 分支名字 删除本地分支 git branch -d + 分支名字 git fetch 没merge前强制删除:git branch -D + 分支名字 删除远程分支 git push origin --delete + 分支名字 git配置远程仓库: git remote -v 查看当前仓库有没有匹配远程仓库 git remote add 远程仓库别名(一般第一个常取用origin) SSH协议地址 例子:git remote add origin git@192.168.1.27:Android/A600.git git remote rm 远程仓库别名 ssh密钥生成命令: ssh-keygen -t rsa -C “chenlangl@outlook.com” git log 命令是针对一个分支,或者只有连续相等commit信息的不同分支使用, 用处是根据tag 拉分支,不管是从高往低打tag,还是从低往高打tag都行。 这句话很抽象,是高度总结。 git log --pretty==oneline 每个提交只打印一行 git log --oneline 在上一个命令的基础上,hash值只显示一部分 git log --graph --all 查看所有分支演进图 git log --graph 查看当前分支演进图 git fetch + git log --graph --all 可以查看整个项目所有分支的演进图 git tag 用于 标记一些 重要节点版本,以便于在重要版本上进行二次开发。 git tag : 直接列出所有的标签 git tag -l xxxx : 可以根据 xxxx 进行标签的筛选 git show 标签名 : 查看标签的信息,(轻量标签 和 附注标签 的信息是不一样的) 创建 轻量tag: git tag 标签名 : 直接给当前的提交版本创建一个【轻量标签】 git tag 标签名 提交版本号 :给指定的提交版本创建一个 【轻量标签】 提交版本号指的就是提交hash值 创建 附注tag: -a : 理解为 annotated 的首字符,表示 附注标签 -m : 指定附注信息 git tag -a 标签名称 -m 附注信息 :直接给当前的提交版本创建一个 【附注标签】 git tag -a 标签名称 提交版本号 -m 附注信息 :给指定的提交版本创建一个【附注标签】 删除tag: git tag -d 标签名称 : 删除指定名称的标签 推送 tag 到远程仓库: 默认情况下,git push 命令并不会把标签推送到远程仓库中。 因此,我们必须 手动地将 本地的标签 推送到远程仓库中。 git push origin 标签名称 : 将指定的标签上传到远程仓库 git push origin --tags : 将所有不在远程仓库中的标签上传到远程仓库

本地选定提交打tag:git tag +name +hash点 删除远程仓库上的标签同样也需要手动执行: $ git push origin :regs/tags/标签名称 or $ git push origin --delete 标签名称 两个命令一样,都是删除指定的标签 打tag的真正作用:“检出标签” 说人话就是,可以以一个tag点为基础版本拉出一个分支。 git checkout -b +分支名称 +标签名称 git cherry-pick 常规用法:git cherry-pick + hash值(所谓的commit id) 在cherry-pick操作中,可能会遇到冲突。当Git无法自动解决冲突时,我们需要手动解决冲突。当冲突发生时,Git会将冲突的文件标记为“Unmerged”,我们需要在文件中手动解决冲突,并使用以下命令标记冲突已解决: git add 解决冲突之后的文件,继续cherry-pick操作: git cherry-pick --continue

git merge 合并远程分支一般先get fetch origin ,再使用git merge +origin/分支名 选择合并哪个分支的内容 本地merge更简单了,直接git merge + 分支名。 git merge有个缺点就是,不同的分支合并,除了提交的hash点,会产生新的merge点。 git rebase 是git merge进阶版本,使用rebase命令 git log --graph的图上不会有交叉点,也就是合入的分支不会产生新的merge点。 一般用法:举个例子,将 branch4分支的代码rebase到master分支上。 git checkout branch4 使用rebase命令把自己的commit信息复制到master分支上 git rebase master 然后再回到master分支,merge branch4分支即可,这样就不会有merge点 git checkout master git merge branch4 git show 查看某次提交 涉及的文件 及具体的修改内容:git show +hash值 仅仅查看某次提交涉及了哪些文件,并不查看具体修改内容:git show + hash值 + --stat git blame git config --list 查看所有的配置信息 git config --global --list 查看全局配置信息 git config --local --list 查看当前仓库的配置信息 –global 是当前用户的 –system 是整个系统的 –local 是当前项目的 git diff git diff --cached 比较暂存区和本地仓库的区别 git diff 查看当前工作区和本地仓库的区别 git diff + hash值,查看某一次提交和没提交前的区别 git diff + hash1 + hash2 查看hash1 到hash2之间的区别 git diff > all.diff 输出当前工作区的diff文件 git diff 的知识还包括“打path”,后续再补充 git reset --soft HEAD^ 将上一次 commit提交 回退到未提交状态,也就是将一笔提交从暂存区,还原到工作区。 git reset --soft + hash值 将本地的提交信息回退到指定的hash值,注意只是回退了提交信息,但是代码没有改动 git reset --hard + hash值 回退到指定hash点,commit信息和代码提交都一起回退

推荐文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。