创建本地Git仓库
在当前Project的文件夹内右键点击GitBash启用Git命令行,输入命令git init
初始化仓库,之后在本文件夹内会出现“git隐藏文件夹”。输入命令git config user.name "name"
和git config user.email "xxx.@xxx.com"
可为此本地仓库创建用户名与邮箱,用以记录提交日志,虽然此处的name和email可以随意填写,但建议写自己的gitee或github账号。因为在push到远端仓库时仍然需要输入gitee或github的账号密码。使用git config --global user.name "name"
和git config --global user.email "xxx@xxx.com"
可为本地的全部git仓库设置name和email。不使用命令行的方式,也可以直接在init后的项目下的.git文件夹内
或C:\Users\Administrator\.gitconfig的config
配置文件中修改。GitBash中可以使用全部linux的命令。
查看项目中的文件的状态并提交到暂存区和本地仓库
在当前Project的文件夹内使用GitBash启用Git命令行,输入git status
命令,红色代表还未添加到暂存区,绿色代表已经添加到暂存区但未提交到本地仓库,不显示的文件代表已经提交到本地仓库。
输入命令git add 文件地址
提交到暂存区,输入命令git commit 文件地址
将暂存区的文件提交到本地仓库。
输入命令git commit -m “本次提交的描述信息” 文件地址
为本次commit添加描述信息,不使用-m选项则会通过vim编辑描述信息,i进入编辑模式,esc退出编辑模式后输入:wq保存并退出vim。对于直接在文件管理器中或使用命令行进行的删除文件的操作,也可以被git status检测出来,颜色规则、add和commit与添加文件相同。
查看本地仓库提交的日志信息
输入命令git log
或git log --pretty=oneline
来查看日志信息或以每条日志信息单行显示的方式日志信息。其中最后一次提交的日志会有(HEAD -> master)标记。
回退版本、版本穿梭
通过 git reset --hard HEAD^
可退回到上一个版本,^有几个就会回退到上几个版本。也可以使用 git reset --hard~n
回退n个版本。
通过git reflog
命令可以查看所有历史操作,除了git log展示的信息外还包括回退等操作,称为处处留痕
。其中前面的七位代号
即是git log中每次操作代号的前七位。
使用命令git reset --hard 七位代号
来进行各个版本的穿梭。
撤销
撤销对还未add的文件如某java代码的修改: 使用
git checkout -- 文件地址
命令来撤销修改。
撤销已add未commit:先git reset HEAD 文件名
再git checkout -- 文件名
(当需要撤销未add时使用)
撤销已add已commit(版本穿梭或回退):git reset --hard HEAD^
分支
Git为我们自动创建的第一个分支为master,也称为主分支。
创建分支
git branch 分支名
查看分支git branch -v
切换分支git checkout 分支名
删除分支git branch -d 分支名
合并到分支git merge 分支名
合并分支: 开发分支随着项目的开发需要进行提交到本地仓库,但这些开发分支的操作都不会影响主分支等其他分支的本地仓库内容,比如开发分支新建了某java文件并提交到了本地仓库,其他分支不会存在此java文件,需要将开发分支合并到其他分支才可以。对于开发分支做了更改,主分支没有更改的情况下,要在主分支的视角下合并开发分支,即 git merge develop
(develop为创建的开发分支),即主动需要合并其他分支的这个分支角度下进行merge操作
合并时的冲突问题: 冲突一般指不同的几个分支更改了同一个文件同一位置的代码
,在两种版本合并时版本管理软件无法判断到底应该保留哪个版本,因此会提示该文件发生冲突,需要程序员来手工判断解决冲突。冲突的部分会以“<<<<<<< HEAD”、“=======” 和 “>>>>>>> 分支名”分隔开,由程序员确定保留哪部分。报CONFLICT错误