git使用总结

时间:2019-10-14
本文章向大家介绍git使用总结,主要包括git使用总结使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

基本操作

  git init 初始化git仓库,当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,同时自动创建的第一个分支master,以及指向master的一个指针叫HEAD

  git add . 添加到暂存区,有.gitignore时会忽略相关gitignore文件

  git commit -m '提交说明' 把暂存区的所有内容提交到当前分支

  git checkout -- file可以丢弃工作区的修改

  git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区

  git rm <file>删除文件

  git log 查看提交历史

  git reflog 查看所有历史提交

  git remote add origin git@github.com:michaelliao/learngit.git 关联远程仓库,其中origin是远程仓库的名字,可以自己定义,关联后,使用命令git push -u origin master第一次推送master分支的所有内容。此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

  git clone git@github.com:michaelliao/gitskills.git(SSL方式,也可以为https方式) 克隆一个本地库

  git status 查看工作区状态

  git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交

  git checkout -b branch-name origin/branch-name 在本地创建和远程分支对应的分支

  git branch --set-upstream branch-name origin/branch-name 建立本地分支和远程分支的关联

  git config --global alias.st status 给命令设置别名

版本回退

  本地版本回退

    git reset --hard HEAD^ 回退到上一版本

    git reset --hard d5d1657f3dd928c0e 回退到指定commit

  远程版本回退

    通过git log 获取当前commitid a  

    先回退本地版本

    git reset --mixed a HEAD重新指向最新commitid

    git push origin master

  reset的三种方式

    --hard:重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区

    --soft:重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files)。

    --mixed(默认):重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的【差异变更集】会放入Working Tree工作目录中  

分支管理

  master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点,当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上,从此时开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变。

  git branch dev 创建分支

  git checkout dev切换分支

  git checkout -b dev 创建并切换到dev分支

  git branch -a 查看本地所有分支

  git branch -d dev 删除本地分支

  git branch | grep -v 'master' | xargs git branch -D 删除除master以外所有的本地分支

  git merge命令用于合并指定分支到当前分支

  冲突解决 修改冲突文件,add 、commit

bug修复

  git stash 临时保存工作区变更

  git stash list 查看临时保存的信息

  git stash pop 恢复临时保存的变更并删除stash

  git cherry-pick <commitid> 复制一个特定的提交到当前分支 ,当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场,在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动

  tag标签

  git tag <tagname> [<commitid>]用于新建一个标签,默认为HEAD,也可以指定一个commit id

  git tag -a <tagname> -m "blablabla..."可以指定标签信息

  git tag可以查看所有标签

  git show <tagname>可以看到说明文字

  git push origin <tagname>可以推送一个本地标签

  git push origin --tags可以推送全部未推送过的本地标签

  git tag -d <tagname>可以删除一个本地标签

  git push origin :refs/tags/<tagname>可以删除一个远程标签

忽略特殊文件

  在项目根目录下生成.gitignore文件,在IDE中都可以快速生成,或者参考https://github.com/github/gitignore复制一份,再加上自定义的忽略文件即可,通常.gitignore也会纳入版本控制。没有加入版本控制的文件,状态为untracked,如果不小心把本应忽略的文件加入了版本控制,再将该文件加入到.gitignore文件是不起作用的,此时需执行git rm -r -f --cache . 删除所有track文件(文件数量较少时可以git rm -r -f --cache <文件名> 将指定文件踢出版本控制),然后配置.gitignore文件,执行add、commit等后续操作。

   详细使用可以参考:https://www.liaoxuefeng.com/wiki/896043488029600

  

原文地址:https://www.cnblogs.com/hhhshct/p/11672463.html