创建本地仓库-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
参考如下资料