管理机制
1.工作区域划分
工作区
1.本地工作路径
暂存区
2.位于(.git/index)文件中,所以暂存区有时也称为索引(index)
版本库
3.位于(.git/)目录中,含此项目的快照数据,即本地仓库
4.位于服务器上的远程仓库
操作命令
1.创建仓库
git init [dentry]
-初始化一个git仓库
--[dentry]默认当前目录
git remote add <repositoryName> <url>
-增加名为<repositoryName>的远程仓库关联
--以后提交代码使用<repositoryName>即可
git clone <url> 远程仓库--->本地仓库
-URL支持3种协议:http/ssh/git
2.提交与修改
工作区
git rm [file]
-删除工作区文件
--git rm=[rm file]+[git add file]
git mv
-移动或重命名工作区文件
git diff
-查看工作区做的更改(上次add后)
git add [file] 工作区--->暂存区
-实际是一个脚本命令,调用git命令git update-index添加一个文件到git index中
git add .
git add -A
-添加所有未跟踪的文件到index中
git status [-s]
-查看工作区文件是否加入到index暂存区跟踪
--参数-s,来获得简短的输出结果
暂存区
git rm --cached [file]
-删除暂存区文件(停止跟踪file文件)
--不影响工作区,本地仓下次commit生效
git reset HEAD [file]
-删除还未提交的暂存区更改
--使用当前HEAD(commited)替换掉index中的内容
git diff --cached
git diff --staged
-查看暂存区做的更改(上次commit后)
git commit
git config --global user.name 'name'
git config --global user.email 'email'
-设置提交代码时的用户信息
--global 参数对所有仓库有效
git commit -a 暂存区--->本地仓库
-把所有的change加到git index里然后再commit
git commit -v
-可以看到commit的差异
git commit -m 'msg'
-添加commit信息
git commit --amend
-使用上次的提交号,进行修改提交
本地版本仓库
git log
-查看commit的日志
git show <commitId>
-查看某次提交的详情
git reset
-修改HEAD的位置,使HEAD指到某个时间节点的branch上,且舍去之后的版本
--有三种模式[mixed]默认,[soft],[hard]
git reset --mixed <HEAD>
-用于回退到某个版本
--保留工作区,清空暂存区的改动
git reset --hard <HEAD>
-用于回退到某个版本
--清空工作区&清空暂存区的改动(擦除错误记录)
git reset --soft <HEAD>
-用于回退到某个版本
--会保留工作区的内容,并把因为保留工作区内容所带来的新的文件差异放进暂存区
git revert
-回滚到某次提交,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在
git revert [-n] <commitId>
-回滚到某次提交
--参数-n=[--no-commit],带此参数不自动提交
HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
以此类推...
临时空间
git stash push
-将文件给push到一个临时空间中
git stash pop
-将文件从临时空间pop下来
远程仓库
git fetch 远程仓库--->本地仓库
-取回更新
git fetch origin
-取回远程关联版本仓库全部更新
git fetch origin <branchName>
-取回远程仓库<branchName>分支的更新
git log -p FETCH_HEAD
-取回更新后,会返回一个FETCH_HEAD,指的是远程仓对应分支的最新状态,可以通过它查看刚才取回的信息
git merge
-从指定commit合并到当前分支
git merge -m <msg> <commitId>
-常用合并
git pull [远程主机名] [远程分支名]:[本地分支名] 远程仓库--->工作区
* 其实就是 git fetch 和 git merge FETCH_HEAD 的简写
git pull origin master
-将远程主机 origin 的 master 分支拉取过来,与本地的当前分支合并
git push [远程主机名] [本地分支]:[远程分支] 本地仓库--->远程仓库
git push origin test:master
-提交本地test分支作为远程的master分支
git push origin master
-将本地的 master 分支推送到 origin 主机的 master 分支
git push --force origin master
git push -f origin master
-如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数
3.信息查看
提交日志
git log --oneline
-查看历史提交记录的简洁的版本
git blame [file]
-以列表形式显示修改记录
其他信息
git config --list
-看所有用户
git ls-files
-看已经被提交的
4.分支(branch)操作
git branch
-查看本地所有分支
git branch -r
-查看远程所有分支
git branch -a
-查看所有的分支
git branch <branchName>
-创建本地分支,不自动切换到新分支
git checkout <branchName>
-切换分支
git checkout -b <branchName>
-创建本地分支,自动切换到新分支
git branch -d <branchName>
-d选项只能删除本地已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
git merge <branchName>
-将名称为[name]的分支与当前分支合并
git push origin <branchName>
-创建远程分支(本地分支push到远程)
git push origin --delete <branchName>
git push origin :<branchName>
-删除远程分支
5.远程仓库操作
git remote
-查看关联远程仓库名称
git remote -v
-显示关联的远程仓库详细信息
git remote add <repositoryName> [branchName] <url>
-添加远程仓库的关联
--branchName 默认为master
git remote show origin
-显示某个远程仓库的信息
git remote remove <name>
-删除远程仓库关联
git remote set-url origin <newUrl>
-修改远程仓库的关联
6.版本(tag)操作
git tag
-查看版本
git tag [name]
-创建版本
git tag -d [name]
-删除版本
git tag -r
-查看远程版本
git push origin [name]
-创建远程版本(本地版本push到远程)
git push origin :refs/tags/[name]
-删除远程版本
git pull origin --tags
-合并远程仓库的tag到本地
git push origin --tags
-上传本地tag到远程仓库
git tag -a [name] -m 'yourMessage'
-创建带注释的tag
git下载
https://git-scm.com/download/win
https://git-scm.com/download/linux
安装教程
https://www.jianshu.com/p/bebba0d8038e