第五篇 git操作
1.git教程
git平台进行数据托管,数据包括代码、配置等文件
常见有github,gitee,git.acwing.com
1.1. git基本概念
工作区:当前数据的集合。工作区是独立于各个分支的。
暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。
版本库:存放所有已经提交到本地仓库的数据版本,树结构,每个节点代表一个数据版本,从根节点出发的每条链路为一个分支
1.2 git常用命令
全局化配置
每台机器/每个用户执行一次,信息记录在~/.gitconfig文件中
git config --global user.name xxx:设置全局用户名git config --global user.email xxx@xxx.com:设置全局邮箱地址
仓库配置
远程仓库在git平台上创建,每个仓库执行一次
-
git init:将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中 -
git remote add origin git@git.acwing.com:xxx/XXX.git:将本地仓库关联到远程仓库 -
git clone git@git.acwing.com:xxx/XXX.git:将远程仓库XXX下载到当前目录下
仓库--工作区与暂存区
git add XX:追踪XX文件,并将当前XX文件内容添加至暂存区git add .或者git add *:追踪所有的文件,并将当前所有的文件内容添加至暂存区git rm --cached XX:从暂存区移除XX文件内容,并移除XX文件的追踪git rm --cached -r .或者git rm --cached *:从暂存区移除所有的文件内容(清空暂存区),并移除所有文件的追踪git restore XX:将XX文件尚未加入暂存区的修改全部撤销(还原工作区中XX文件内容)git restore --staged XX:将XX文件尚未加入版本库的修改全部撤销(还原暂存区中XX文件内容)git commit -m "备注信息":将暂存区的内容及备注信息提交到版本库git diff XX:查看XX文件在工作区相对于暂存区的内容变化,文件未暂存/两者内容相等时则不显示任何内容git status:查看仓库状态
git rm针对文件,git restore针对文件的内容变化,当文件首次增加,二者效果等价
git add与git restore互为可逆操作
栈操作
在工作区和暂存区的修改不想保存到版本库,又不想直接舍弃
git stash:将工作区和暂存区中尚未提交到版本库的修改存入栈中git stash apply:将栈顶存储的修改恢复到当前分支,但不删除栈顶元素git stash drop:删除栈顶存储的修改git stash pop:将栈顶存储的修改恢复到当前分支,同时删除栈顶元素git stash list:查看栈中所有元素
仓库--版本库--分支版本
版本库为树结构,存放所有已经提交到本地仓库的数据版本,其中每个节点代表一个数据版本,从根节点出发的每条链路为一个分支
git log:查看当前分支的所有版本git reflog:查看HEAD指针的移动历史,包括版本回滚与前进git reset --hard HEAD^或git reset --hard HEAD~:将代码库回滚到上一个版本git reset --hard HEAD^^:往上回滚两次,以此类推git reset --hard HEAD~100:往上回滚100个版本git reset --hard 版本号:回滚到某一特定版本,版本号共40位,一般前7位即可区分不同的版本
仓库--版本库--分支操作
默认分支为本地分支master
-
git branch:查看所有分支和当前所处分支 -
git branch branch_name:创建本地分支branch_name -
git branch -d branch_name:删除本地分支branch_name -
git branch --set-upstream-to=origin/branch_name1 branch_name2:设置远程分支branch_name1对应本地分支branch_name2 -
git checkout branch_name:切换到本地分支branch_name -
git checkout -b branch_name:创建并切换到本地分支branch_name -
git checkout -t origin/branch_name拉取远程分支branch_name到本地 -
git merge branch_name:将本地分支branch_name合并到当前分支上 -
git push -u origin branch_name:第一次将当前分支推送到远程仓库,-u指定远程的默认主机 -
git push:同步当前分支到远程分支,分支名称相同 -
git push --set-upstream origin branch_name:设置本地分支branch_name对应远程分支branch_name -
git push -d origin branch_name:删除远程分支branch_name -
git pull:同步远程分支到当前分支,分治名称相同 -
git pull origin branch_name:同步远程分支branch_name到当前分支

浙公网安备 33010602011771号