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> <commitid>
从最新的commitid 创建
git checkout -b bug_102
从指定的commitid 创建分支
git checkout -b ceshi_1 b4370889add02f8082e4c32c4634b0c0507340bd
分支-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^
撤销两次的提交
git reset --soft HEAD^^
  • 撤销到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://my.oschina.net/u/3505620/blog/2988339

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值