仓库关联
1,新建远程仓库:Test(会生成readme和gitignore文件),或者不生成,就不会有下面本地和远程冲突问题
2,新建本地项目:Test(会生成java文件,本地和远程不一致)
2.1,git init(对应VCS->Import into VC->Create git Repository)
2.2,git config user.email user.name(对应设置->Version Control->Github)
(或者不同仓库不同账号:git config --local user.name)
2.3,git remote add origin https://(对应VCS->Git->Remotes)
2.5,git add .(对应右击项目根目录->Git->Add)
2.6,git commit -m xxx(对应右击项目根目录->Git->Commit Directory)
(git bash中文不显示:git config --global core.quotepath false)
2.7,git pull origin master或者git pull origin master --allow-unrelated-histories
2.8,再次进行2.5和2.6
2.9,git push origin master
分支与合并
本地合并:
1,假如现在在dev分支上,刚开发完项目,执行了下列命令:
git add .
git commit -m ‘提交的备注信息’
git push -u origin dev 本地dev分支push到远程dev上
2,想将dev分支合并到master分支,操作如下:
2.1,首先切换到master分支上
git checkout master
2.2,如果是多人开发的话 需要把远程master上的代码pull下来
git pull origin master
如果是自己一个开发就没有必要了,为了保险起见还是pull
3,然后我们把dev分支的代码合并到master上
git merge dev
4,然后查看状态及执行提交命令
git status
5,最后执行下面提交命令,需要push到远程master上
git push origin master
远程合并:
直接在远程仓库进行图形化操作,然后git pull origin master更新本地代码。
克隆
单个分支克隆:
git clone url : 默认克隆master分支
git clone -b name url : 克隆指定name分支的代码
多个分支克隆:
1、先克隆默认master分支
git clone url
2、进入项目目录
cd project
3、查看所有分支,包括隐藏的远程分支
git branch -a
4、分别拉取每个远程分支
git checkout -b name origin/name
或者
git checkout -t origin/name
回退
撤销
git reset --soft commit_id : 撤销commit,保留副本文件
git reset --hard commit_id :撤销commit,保留副本文件
撤销与回滚
git revert 和 git reset的区别
- git revert是用一次新的commit来回滚之前的commit,此次提交之前的commit都会被保留。
- git reset是回到某次提交,提交及之前的commit都会被保留,但是此commit id之后的修改都会被删。
状态
git log :查看commit记录
git status :查看副本区状态
git config --global --list :查看git配置
git add -A 保存所有的修改
git add . 保存新的添加和修改,但是不包括删除
git add -u 保存修改和删除,但是不包括新建文件
提交前如何处理其他人的提交
1、git pull 必须带 --rebase指令。
2、如果自己写到一半发现同事有新提交,建议马上合并,避免改动太多不好解决冲突。。
3、2的情况下,建议先把本地改动 commit,commit message 可以随便写一个,比如temp。
4、执行 git pull --rebase,解决完冲突后,再执行 git reset --soft HEAD^ ,这个是把之前的temp提交给重置,本地改动在soft模式下不会丢失。