1.1给你的电脑添加用户名和邮箱
Git config --global user.name ‘用户名’
Git config --global user.email ‘邮箱’
1.2.创建远程仓库
1.3.把远程仓库下载到本地和本地仓库关联
Git clone 地址
这个命令, 表示从远程仓库复制一份代码,到本地, 并且帮我们创建一个文件夹
这个文件夹, 就是git clone 这个命令下载远程仓库代码后, 同时帮我们创建的, 本地仓库+缓存区+工作空间
1.4查看工作空间和缓存区
Git status: 用来查看工作空间和缓存区, 它们文件状态
1.5把工作空间的变化,提交到缓存区
Git add 文件名
Git add .
Git add *.java 尽量不要使用
把....提交到缓存区
1.6把缓存区的变化添加到本地仓库
Git commit -m '描述'
把缓存区的所有变化提交到本地仓库
这个命令在从缓存区提交到本地仓库变化的同时, 还创建了一个全新的版本
1.7查看版本
git log
1.8上传到远程仓库
git push
1.9从远程仓库获取变化
git pull
1.10版本回退和回退问题
1.10.1想回退工作空间的变化
还没有执行git add , 这个变化还停留在工作空间
Git checkout .
Git checkout 文件名
回退到版本之前的样子
1.10.2想回退缓存区的变化
还没有提交到本地仓库, 缓存区有一些变化, git add 之后
Git reset 文件名
Git reset .
1.10.3已经提交到本地仓库,想回退
1.10.3.1想回退到工作空间
工作空间的修改要保存, 回退 commit add 这两个命令
Git reset --mixed HEAD^
1.10.3.2想回退到缓存区
保留add 操作 , 回退commit 操作
Git reset --soft HEAD^
1.10.3.3想回退所有
Commit add 工作空间的改变, 都不要了
Git reset --hard HEAD^
1.10.4已经提交到远程仓库
1.11分支问题
为什么要产生分支.
在原有代码的基础上, 复制一份开发, 开发完成(开发和测试), 再把代码合并会原有的代码
1.11.1查看分支
Master: 表示主线, 主干 主分支
Git branch -a
1.11.2创建分支命令
Git checkout -b 分支名: 创建一个分支并且切换到刚创建的这个分支
这个命令等价于两个明令
创建分支: git branch 分支名
1.11.3切换分支
1.11.4把本地创建的分支提交到远程仓库
Git push origin 分支名: 分支名
本地分支名: 远程仓库的分支名
1.11.5合并分支
切换到要合并分支的目的分支上, 再把要合并的分支,合并回来
Git merge 分支名
1.11.6删除分支
删除远程仓库分支
Git push origin -delete 分支名
删除本地分支(未合并的)
Git branch -D 分支名
删除本地仓库分支(以合并的)
Git branch -d 分支名
1.12冲突
当两个用户, 都创建的一个版本(同时修改了某一个文件), 并且这个版本是基于某一个历史版本的,
而且, 这两个新版本, 要面临合并. 那么就会冲突
第一个问题, 冲突经常产生么?
不经常, 分业务模块实现代码, 公共类容易产生冲突
第二个问题, 谁来解决冲突?
谁遇到, 谁解决
第三个问题, 什么时候提交代码push, 什么时候拉新代码pull,
要下班之前 刚来上班
不要逃避这个责任.
如果A文件是我自己写的,我自己修改了,然后push,这个算更新?
(pull)
如果另一个人修改了,然后push,这算冲突?
1.13idea
注意:
1.Push: 之前就要习惯性 pull
2.版本回退: HEAD^ HEAD^^^^ 可以直接写版本号
3.忽略文件 有些东西是是我们不想提交的.
.gitignore 配置的文件, 都将会被git 忽略(不追踪)
注意这个文件要和 .git同级(放到工作空间里)
已经提交了, 已经追踪了某个文件的变化, 再忽略, 没用了
本地有项目, 想直接提交到远程仓库
输入账号和密码: 按提示输入
重复的输入账号和密码
Git config --global credential.helper store