一些常用的git命令操作简单总结
记录常用的git命令,附带命令的简单使用说明
git区域分布
remote远程仓库 repository本地仓库 index暂存区 workspace工作区 stash与独立分支的堆区
- workspace add/stage=> index
git add ./filename git stage ./filename
- index commit=> repository
git commit -m "xxx"
- repository push=> remote 不同名:
git push origin branchName
同名:git push
本地分支与远程分支必须具有track关系 - remote fetch=> repository 初次建本地仓库
git clone
拉最新代码git fetch
- remote pull=> workspace
git pull
- repository => workspace
git checkout
分支处理
分支创建
git branch develop
创建本地分支名为develop(此时没有track跟踪远程分支)git checkout develop
本地切换分支到developgit checkout -b develop
===前两步
本地分支track跟踪远程分支
假设要创建一个分支develop
远程有分支,新建本地分支跟踪远程分支(分支名:origin/develop)
本地创建分支track跟踪远程分支:
git checkout --track origin/branch_name
- 方法1
git checkout --track origin/develop
将自动新建一个与远程分支同名的本地分支develop ,会自动track跟踪远程的同名分支origin/develop。
- 方法2
git checkout -b new_branch_name origin/branch_name
根据远程分支origin/branch_name 创建一个本地分支 new_branch_name,会自动track跟踪。这样可创建不同名分支。建议分支名一样。
远程没有分支,新建远程分支
本地创建无track关系的分支,推送到远程,并且:
git push --set-upstream origin branch_name
自动在远程创建一个 branch_name 分支,然后自动本地分支 branch_name track origin/branch_name 远程分支
- 方法1
git branch develop
git checkout develop
git push --set-upstream origin develop
会自动在远程创建一个同名分支origin/develop,并跟踪
分支合并与删除
假设要将develop合并到master
- 先切换到要主分支:
git checkout master
- 合并分支:
git merge develop
- 删除本地分支
git branch -d develop
- 删除远程分支
git push origin --delete develop
代码回滚
checkout
- 重置workspace的代码:
git checkout fileName
重置所有git checkout .
- 1中不可重置新建的文件。
git clean -df
重置workspace所有新加的代码和文件
revert
git revert HEAD~1 / commit_id
撤销一个提交的同时会创建一个新的提交。安全。不会移除当前分支的一些提交commit记录
reset
git reset HEAD~1 / commit_id
在提交层面上,reset将一个分支的末端指向另一个提交。不安全,最好不要再公共分支上使用。会移除当前分支的一些提交commit记录
独立堆区
stash
git stash
将当前的更改存放到独立于所有分支的堆区(例如切换分支时,又不想commit当前更改)git stash pop
将堆区返回workspacegit stash list
查看stash列表对比stage, stash隶属于当前分支的暂存区,属于分支的子集。
tag标签
git tag tag-name
给最新commit打标签git tag -d tag-name
删除对应标签git push origin tag-name
推送标签到远程