一个完整的应用:本地仓库+远程仓库
本地仓库/远程仓库:工作区+暂存区+仓库
远程仓库一般只做版本控制,无工作树,大部分指令无法在此执行。
流程步骤:
#环境及状态监测
git version 看计算式是否安装git,以及查看git版本。
git status
查看本文件夹是否已托管git。
#初始化Git环境
git init、git init --bare git托管。--bare使用与远端只做版本控制库使用,无项目文件。
#单库提交
git add aaa.txt 添加到stash(暂存区)
git commit aaa.txt -m com1
提交到本地仓库
git commit -a -m com1
直接从工作区提交到本地仓库
#回复操作
git checkout aaa.txt
以暂存区还原工作区
git reset aaa.txt 以最新仓库区还原暂存区
git log --graph --pretty=oneline --abbrev-commit 查看提交历史记录(不包括被还原之后的版本)
git reflog
查看提交命令历史记录(包含所有版本的历史记录)
git reset aaa.txt [commit-id]
以特定版本仓库区还原暂存区
#连接远端
git remote 列出所有本地仓库设置的远程主机记录
git remote -v
列出所有远程主机名及网址
git remote add xx xxxx
为本地仓库设置一个主机名为xx,地址为xxxx的远程主机(此时添加的主机并不一定存在)
git remote rm xx
删除一个设置主机名为xx的远程主机
git remote show xx
显示主机名为xx主机概况
git remote rename name1 name2
主机改名
#本地到远端
git push <远程主机名> <本地分支名>:<远程分支名>
本地分支提交到远程主机某分支
git push <远程主机名> <本地分支名>
同上,推送到存在追踪关系的远程分支(git push origin master)
git push <远程主机名>
同上,推送当前分支
git push 同上,远程只有一个追踪分支时
git push original :master 省略本地分支,相当于删除指定的远程分支
git push -u origin master
推送并设置默认主机
#远端到本地
git pull <远程主机名> <远程分支名>:<本地分支名>
拉取远程主机某分支合并到本地某分支(git pull origin next:master)
git pull <远程主机名> <远程分支名>
同上,合并到本地当前分支(git pull origin next)
git pull <远程主机名> 同上,已建立追踪关系时
git pull 同上,远程只有一个追踪分支时
#分支
git branch 列出所有本地分支
git branch -r/a
同上,远程/所有分支
git checkout -b newBranch
创建并切换到新分支
git branch -d newBranch
删除分支
#克隆
git clone <版本库的网址> 该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数。
git clone <版本库的网址> <本地目录名>
git clone -b xxx [网址]
从特定远程地址克隆xx分支到本地当前文件夹
git clone -b xx git://xxxx/repo.git/ xxx 从某网址克隆xx分支到本地xxx文件夹