git命令手册

创建本地仓库-git init

git init
复制代码

添加文件到暂存区-git add

  • 添加所有资源到暂存区
git add -A
复制代码
  • 添加一个或多个文件到暂存区
git add <file>...
git add thing.js remote.js
复制代码

提交-git commit

git commit -m <message>
git commit -m "提交信息"
git commit -amend -m "修改上次提交的备注信息"
复制代码

从仓库删除文件-git rm

  • 删除文件
git rm thing.js
复制代码
  • 删除文件夹
git rm -r -f delete
复制代码
  • 取消文件版本控制
git rm -r --cached .\thing.js
复制代码

查看文件状态-git status

  • 查看所有文件当前状体啊
git status 
复制代码
  • 查看具体文件的状态
git status thing.js
git status thing.js remote.js
复制代码

比较文件不同-git diff

  • 比较所有文件的不同
git diff
复制代码
  • 比较具体文件不同
git diff thing.js
git diff thing.js remote.js
复制代码

远程仓库-git remote

  • 查看关联远程库
git remote
origin
origin2
复制代码
  • 查看详细信息
git remote -v
origin  https://gitee.com/zhangpanqin/jail_git_study.git (fetch)
origin  https://gitee.com/zhangpanqin/jail_git_study.git (push)
origin2 https://gitee.com/zhangpanqin/jail_git_study2.git (fetch)
origin2 https://gitee.com/zhangpanqin/jail_git_study2.git (push)
复制代码
  • 关联远程库
git remote add [shortname] [url]
git remote add origin https://gitee.com/zhangpanqin/jail_git_study.git

git fetch
关联远程库之后,使用git fetch 将远程库的信息拉取下来不更新
复制代码

克隆-git clone

git clone https://gitee.com/zhangpanqin/jail_git_study.git
 
在当前目录下创建jail_git_study,代码在jail_git_study
复制代码

拉取-git fetch

git fetch <remote> <remotebranch>
从远程仓库拉取仓库信息,不进行别的操作
复制代码

合并-git merge

  • 将指定本地分支合并到当前分支
git merge -m "合并消息" <branchname>

git merge -m "将dev合并到master" dev
复制代码
  • 将远程仓库修改合并到本地
git fetch
git merge -m "将远程仓库的更新合并到当前分支" origin/ceshi
复制代码

同步-git pull

  • 同步追踪关系的分支
在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支
git pull

Git也允许手动建立追踪关系。
git branch --set-upstream master origin/nex
复制代码
  • 同步指定分支的合并,有追踪关系的
git pull <remote> <remotebranch>:<branch>

将远程dev与本地master合并
git pull origin dev:master

将远程dev合并到当前分支
git pull origin dev
复制代码
  • 同步指定分支的合并,没有追踪关系
拉取远程的更新
git fetch 
合并远程的分支到当前分支
git merge -m "合并ceshi->master" origin/ceshi
复制代码

推送-git push

  • 推送到指定分支(没有追踪关系也可以推送)
git push <origin> <localbranch>:<remotebranch>
git push origin master:ceshi
git push origin master:master
将指定分支推送到远程分支
复制代码
  • 多个远程仓库推送
当有多个远程库的时候,用来指定默认的远程仓库
git push -u origin master

用来推送到默认的远程仓库,并且建立追踪关系的分支
git push 
复制代码
  • 推送标签
git push origin tag_name
git push origin vjail-2.1.1
复制代码

检出-git checkout

  • 撤销修改
git checkout -- thing.js
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和本地仓库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
复制代码
  • 切换分支
git checkout dev
将当前分支切换到dev
复制代码
  • 切换并创建分支
git checkout -b <branchname>
git checkout -b bug_102
复制代码

分支-git branch

  • 查看分支,当前分支有*
git branch
复制代码
  • 创建分支
git branch <branchname>
git branch bug_103
复制代码
  • 删除本地分支
git branch -d <branchname>
git branch -d bug_103
复制代码
  • 删除远程分支
git push origin --delete delete
复制代码
  • 合并分支
  • 将指定本地分支合并到当前分支
git merge -m "合并消息" <branchname>

git merge -m "将dev合并到master" dev
复制代码
  • 将远程仓库修改合并到本地
git fetch
git merge -m "将远程仓库的更新合并到当前分支" origin/ceshi
复制代码

日志-git log

  • 查看所有的提交日志
git log 
复制代码
  • 查看具体文件的日志
git log thing.js remote.js
复制代码

撤销-git reset

  • 撤销到最近的提交
git reset --soft 只撤销指针,工作区和暂存区不变
git reset --mixed 撤销指针,和暂存区,工作区不变
git reset --hard 指针,暂存区、工作区都会撤销
撤销最一次提交
git reset --soft HEAD~1
撤销两次的提交
git reset --soft HEAD~2
复制代码
  • 撤销到commitid
git log 查看日志 找到需要撤销的commitid
git reset --soft <commitid>
复制代码
  • 返回撤销操作
git reflog 查看commitid
git reset --soft <commitid>
复制代码

变基-git rebase

  • 将当前分支变基到branch
将当前分支变基到指定分支
git rebase <branch>
git rebase dev
复制代码
  • 合并多个提交
将多个commit合并到commitid上 控制台打印如下命令
git rebase -i commitid    

编辑文件
pick eecc30a 11   =》pick eecc30a 11
pick c6e3cb3 12   =》s c6e3cb3 12 
pick 4aec63e 13   =》s 4aec63e 13
保存退出
:wq
修改合并之后commit的message

注意:保存退出之后没有弹出修改日志 尝试如下命令
git add -a  
git rebase --continue
复制代码

打标签-git tag

  • 查看某个标签信息
git show <tagname>
复制代码
  • 在当前分支打tag
git tag <tagname>
git tag vjail-2.0.0
在某个提交点打tag,用-a指定标签名,-m指定说明文字 ,commitid
git tag -a v0.1 -m "version 0.1 released" 1094adb
复制代码
  • 删除tag
git tag -d <tagname>
git tag -d vjail-2.0.0
复制代码
  • 推送tag
git push origin vjail-2.0.0
复制代码

忽略文件版本控制

  • 忽略未加入版本控制的文件
将路径加入到.gitignore,并将.gitignore提交
复制代码
  • 忽略已加入版本控制的文件(远程库文件存在)
1、取消版本控制的文件

git update-index --assume-unchanged 文件或者文件夹

2、将取消版本控制的文件加入版本控制

git update-index --no-assume-unchanged 文件或者文件夹
复制代码

贮藏没有提交的修改-git stash

  • 贮藏当前工作区的修改,没有commit
git stash save "暂存message"
复制代码
  • 查看贮藏记录
git stash list
复制代码
  • 将贮藏检出到工作区
git stash apply stash@{0}
复制代码
  • 删除贮藏记录
git stash drop stash@{0}
复制代码
  • 检出并删除贮藏记录
git stash pop
复制代码

参考如下资料

廖雪峰git教程

易百git教程 git rebase与git merge

转载于:https://juejin.im/post/5cf79681f265da1b7f296d5d

猜你喜欢

转载自blog.csdn.net/weixin_34133829/article/details/91425028