git基本工作流程如下:
- 创建或修改文件
- 使用
git add
命令添加新创建或修改的文件到本地的缓存区(Index) - 使用
git commit
命令提交到本地代码库 - (可选,有的时候并没有可以同步的远端代码库)使用
git push
命令将本地代码库同步到远端代码库
git菜鸟教程:Git 教程 | 菜鸟教程
1、获取和创建项目命令
git init :在当前目录下创建一个仓库,本地化的仓库
ls -a : 可查看是否已创建本地仓库,有以下文件 . | .. | .git
git clone:拷贝一个git仓库到本地。
如:$ git clone git@github.com:schacon/simplegit.git
2、其它基本命令
git add filename:添加一个文件到缓存中
git status:查看项目当前状态
git status -s:查看项目当前状态
其中:A:已在缓存队 AM:添加到缓存中之后又有改动 D:已删除。
git add.:改动后将文件再添加到缓存中
git diff:查看git status中的结果的详细信息
- 尚未缓存的改动:git diff
- 查看已缓存的改动: git diff --cached
- 查看已缓存的与未缓存的所有改动:git diff HEAD
- 显示摘要而非整个 diff:git diff --stat
3、关于分支管理常用命令
添加新的分支:git checkout -b name
查看当前分支:git branch
切换分支:git checkout name
重命名分支:git branch 现名 新名
删除分支(idea右下角可直接删,哈哈哈):
git branch -d 分支名
如果没有merge的分支用-D
撤回push成功的版本:
先查看提交记录,gitreflog;然后git reset --soft HEAD~1 (注意1是对应的版本)
4、关于冲突解决方案
在此只讲git rebase操作
(1)切换到主分支上,拉取最新代码
(2)切换到冲突分支上执行git rebase -i master,弹出界面保存
(3)处理冲突
(4)解决之后重新git add提交修改操作
(5)执行git rebase --continue操作
(6)git push -f。完成
5、撤销merge
git reset --hard HEAD
6、merge错了怎么处理
git merge某分支到目标分支上,发现冲突太多合并代码出问题了想要回退这次提交怎么办?
1.未commit,未push
方式1: 利用idea 的可视化操作 rollback
方式2:idea切换到其他分支,再切回来会提示这个分支有东西没有commit,让你选择commit还是drop commit,选择删除就行了
方式3:git reset --hard HEAD 回退到头结点,丢弃所有改动
2.已提交,未push
此时只需要改本地分支上的提交就行了
方式1: git reset --head HEAD^
方式2: git revert
3.已提交,已push
方式1:
git log 查看提交记录,选择回退到的commitId
git reset --hard *******(*是commitId)
git reset回退干脆利落,但是会丢失提交记录,比如你回退test分支,此时刚好有人提交东西到test,回造成他人代码丢失(别人会骂娘)
git reset执行完成push到远程需要强制推送
git push --force orign