Git命令与分支
1,常用命令
git config user.name # 查看当前用户名
git config user.email # 查看邮箱
# 修改用户名和邮箱
git config --global user.name "xxx"
git config --global user.email "xx"
git config --list # 检查配置信息
git help # 获取git帮助
git status # 检查当前文件状态
git status -s # 检查当前文件状态(简洁)
# 新添加的未跟踪文件前面用??标记
# 新添加到暂存区中的文件前面用A标记
# 修改过的文件前面用M标记
git log # 查看提交历史
git log -p -2 # 显示最近的两次提交
# Git初始化
git init
git add *.c
git add LICENSE
git commit -m 'initial project version'
git commit -a -m '注释' # 提交更新
# 在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
git push # 推送到远程仓库
2,分支命令
git checkout whm7 # 切换到分支7
git checkout master # 切换到主分支
git branch # 列出所有本地分支
git branch -r # 列出所有分支(包括远程)
git checkout -b dev_whm # 新建一个分支,并切换到该分支
git branch dev_whm # 新建一个分支,但依然停留在当前分支
git merge dev_whm # 合并指定分支到当前分支
git branch -d dev_whm # 删除分支
3,分支图解
3.1 分支创建与使用
3.2 分支的合并
4,分支合并(new)
1,将自己的分支合并到master分支
假如此时git中的状态是在dev_whm分支上,刚修改完代码,执行下面命令将修改提交到自己的分支:
git add .
git commit -m '提交的备注信息'
git push
紧接着:
git checkout master # 切换到master分支上
git pull # 多人开发的话需要把远程master上的代码pull下来(必须)
git merge dev_whm # 把dev_whm分支的代码合并到master上
git status # 查看状态
# On branch master
# Your branch is ahead of 'origin/master' by 3 commits.
# (use "git push" to publish your local commits)
# nothing to commit, working tree clean
## 上面的意思就是你有3个commit,需要push到远程master上
git push #提交
2,将主分支合并到自己分支
git checkout master # 先切换到主分支
git pull # 把最新的主分支代码pull下来
git checkout dev_whm # 切换到自己的分支
git merge master # 把主分支代码合并到自己的分支
git push # 推上去后,自己的分支代码就和主分支一样了
最后,代码合并完记得把当前状态切换到自己的分支:git checkout dev_whm
5,版本回退(new)
reset方法
该方法会强行覆盖当前版本和将要回退版本之后的其他版本
基本命令
"""方法一"""
git reset --hard HEAD^ # 删除上次提交
git push origin master -f
"""方法二"""
git reset --hard <目标版本号> # 回退到指定版本
git push -f # 强推
示例
如下图提交历史:
运行命令 git reset --hard 612b11… 将会使当前代码的版本回退到 “fix 1”版本,中间的“fix 22”、“fix 33”这两个版本将会被强行覆盖(删除)。
运行命令 git reset --hard HEAD^ 将会使当前代码回退到上一个版本:“fix 33”
revert方法
该方法会在当前版本的基础上新增一个版本,不影响以前的代码
基本命令
git revert HEAD # 撤销前一次
git revert HEAD^ # 撤销前前一次
git push
git revert -n <版本号> # 回退到指定版本
"""
"git revert -n 版本号" 该命令可能会造成代码冲突,需要手动修改冲突的代码,
然后git add、git commit、git push正常提交
如果冲突的代码太多,懒得改代码,想要取消本次revert操作,
可以使用命令“git revert --abort”
"""