how to use git /**git管理文件夹可以分为三层, 工作区:实际能看到的文件夹 暂存区stage:.git文件夹内隐藏的区域 暂存区分支master仓库:存放所有版本的文件 **/ ///////////////////////////////////////////////////////////////////// //初始化git仓库:必须到想要建仓库的目录下 git init //添加文件到git仓库:分两步,第二步的message是本次提交的说明 //add命令实际是将修改文件从工作区存入暂存区中 //commit命令则将暂存区内的文件全部提交到仓库 git add <file> git commit -m <message> //查看是否有文件被修改过 git status //查看修改的内容 git diff //查看工作区与暂存区的差异,暂存区为空时则与仓库比较 git diff --cached //查看暂存区与仓库的差异 git diff HEAD //查看暂存区与仓库最新版本的差异 //////////////////////////////////////////////////////////////////// **************************************************************************** //////////////////////////////////////////////////////////////////// //查看提交日志:HEAD指针指向的是当前版本 git log //版本回退:会修改文件内容以及提交日志的内容 git reset --hard HEAD~1 //回退到上一个版本 git reset --hard HEAD~10 //回退到10个版本前 //回到未来:根据commit id来判断指向的版本,版本号只需提供前几位 git reset --hard <commit id> //查看命令日志:包含每一次提交、版本变换 git reflog //丢弃工作区的修改 git checkout -- <file> //丢弃暂存区的修改 git reset HEAD <file> //////////////////////////////////////////////////////////////////// **************************************************************************** //////////////////////////////////////////////////////////////////// //本地仓库关联一个远程仓库:其中origin是为远程仓库指定的名字,server-name一般是github.com git remote add origin git@server-name:path/repo-name.git //查看远程库信息:远程库名字与远程库链接 git remote -v //删除远程库:根据名字删除 git remote rm origin //将远程库克隆到本地库 git clone git@server-name:path/repo-name.git //////////////////////////////////////////////////////////////////// **************************************************************************** //////////////////////////////////////////////////////////////////// //查看分支 git branch //创建分支 git branch <branch-name> //切换分支 git checkout <branch-name> git switch <branch-name> //创建并切换分支 git checkout -b <branch-name> git switch -c <branch-name> //合并某分支到当前分支:默认使用fast-forward模式合并,合并后不会产生日志 git merge <branch-name> //使用普通模式合并,会产生日志 git merge --nn-ff -m "message" <branch-name> //删除分支:-d删除已合并分支,-D删除未合并分支 git branch -d <branch-name> git branch -D <branch-name> //////////////////////////////////////////////////////////////////// **************************************************************************** //////////////////////////////////////////////////////////////////// //保存工作现场:当前分支工作尚未完成,无法add,又需要去其他分支解决bug, //此时就需要保存当前分支的现场,解决完bug后再回到当前分支回复现场 git stash //保存现场 git stash list //查看以保存的现场 git stash pop //恢复现场 //将指定的修改复制到当前分支上 git cherry-pick <commit-id> //////////////////////////////////////////////////////////////////// **************************************************************************** //////////////////////////////////////////////////////////////////// //本地仓库推送到远程库 git push origin <branch-name> //当多人同时推送时,可能会发生冲突,推送失败,此时先抓取远程的新提交 git pull //建立本地分支与远程分支的关联,关联后才能pull //将本地的<branch-name>与远程库origin的<branch-name>关联 git branch --set-upstream-to=origin/<branch-name> <branch-name> //分叉的提交日志整理成直线 git rebase //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //打标签 git tag v1.0 git tag v1.0 <commit-id> //指定提交id git tag -a v1.0 -m "message" <commit-id> //携带说明文字 //查看标签列表 git tag //查看指定标签信息 git show <tag-v> //删除标签 git tag -d <tag-v> //删除本地标签 git push origin :refs/tags/<tag-v> //删除远程仓库标签 //推送标签 git push origin <tag-v> git push origin --tags //推送全部标签 ////////////////////////////////////////////////////////////////////