git 基本概念
- 工作区:仓库的目录。工作区是独立于各个分支的
- 暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的
- 版本库:存放所有已经提交到本地仓库的代码版本
- 版本结构:树结构,树中每一个节点代表一个代码版本
环境配置
生成自己的SSH密钥,然后将公钥添加至远程仓库
ssh-keygen -t rsa -C 'XXXX@163.com'
设置全局用户名
git config --global user.name xxx
设置全局邮箱
git config --global user.email xxx@163.com
查看系统配置
git config --system --list
查看当前用户配置
git config --global -list
库创建
本地库同步至远程库
将本地代码文件夹配置成git仓库
git init
将本地仓库关联至远程库
git remote add origin git@git.mi.com:xxx/XXX.git
关联后第一次推送master分支的所有内容
git push -u origin master
远程库直接操作
将远程库下载到当前目录下
git clone git@git.mi.com:xxx/XXX.git
切换目标XXX分支
git checkout -t XXX
添加内容
将XX内容添加到暂存区
git add XX
将暂存区内容提交到当前分支
git commit -m "修正数据读取bug"
stash暂存
将工作区和暂存中尚未提交的修改存入栈中
git stash
将栈中存储的修改回复到当前分支,但不删除栈顶元素
git stash apply
删除栈顶存储的修改
git stash drop
将栈顶存储的修改恢复到当前分支,同时删除栈顶元素
git stash pop
查看栈中所有元素
git stash list
将当前分支推送到远程分支
git push -u
强制提交并覆盖远程仓库
git push -f origin master
查看当前仓库状态
git status
git版本
查看当前分支历史版本
git log --pretty=online
查看HEAD指针的移动历史
git reflog
删除命令
将文件从仓库所用目录中删除
git rm -- cached XX
将xx文件从暂存区里删除
git restore --staged xx
将xx文件尚未加入暂存区的修改全部撤销
git checkout - XX
或
git restore XX
代码回滚
将代码回归到上一个版本
git reset --hard HEAD^
向上回滚两个版本
git reset --hard HEAD^^
向上回滚10个版本
git reset --hard HEAD~10
回滚到某一特定版本
git reset --hard 版本号
远程仓库
将本地仓库关联到远程仓库
git remote add origin git@git.mi.com:xx/xxx.git
推送远程分支
将本地分支推送到远程仓库 branch_name 分支
git push origin branch_name
第一次将分支推动到远程仓库
git push -u origin branch_name
将本地branch_name分支对应到远程分支
git push --set-upstream origin branch_name
将远程的branch_name1分支与本地的branch_name2分支进行合并
git branch --set-upstream-to=origin/branch_name1 branch_name2
删除远程库branch_name分支
git push -d origin/branch_name
将远程分支branch_name拉取到本地
git checkout -t origin/branch_name
分支合并
将远程仓库的当前分支与本地
git pull
将远程仓库的branch_name分支与本地仓库的当前分支进行合并
git pull origin branch_name
删除远程仓库
git remote rm origin
查看本地与远程仓库的关联情况
git remote -v
分支命令
创建新分支
git branch branch_name
查看所有分支和当前分支所处分支
git branch
创建并切换到branch_name分支
git checkout -b branch_name
创建一个分支branch_name1并将将远程branch_name分支拉取到本地
git checkout -b branch_name1 origin/branch_name
切换到branch_name分支
git checkout branch_name
将分支branch_name合并到当前分支上
git merge branch_name
删除本地仓库的branch_name分支
git branch -d branch_name
删除远程仓库的branch_name分支
git push -d origin branch_name
将远程的branch_name1分支与本地的branch_name2分支对应
git branch --set-upstream-to=origin/branch_name1 branch_name2