一、Git 安装
不断点击next即可,这里不做详细的截图说明
二、Git 命令行操作 ~~· 本地库相关
1、本地库初始化
在某一个文件夹右键 ---> Git Bash Here ---> mkdir shuling ---> cd shuling ---> git init
命令:git init
效果
2、设置签名
** 形式
用户名:xiaozheng
Email 地址:xiaozheng2018@dgut.com
** 作用:区分不同开发人员的身份
** 辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关
系
** 命令
~ 目级别/仓库级别:仅在当前本地库范围内有效
git config user.name xiaozheng
git config user.email xiaozheng2018@dgu.com
信息保存位置:./.git/config 文件
~ 系统用户级别:登录当前操作系统的用户范围
git config user.name xiaozhengglobal
git config user.email xiaozhengglobal2018@dgu.com
信息保存位置:~/.gitconfig 文件
** 级别优先级
~~ 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别
的签名
~~ 如果只有系统用户级别的签名,就以系统用户级别的签名为准
~~ 二者都没有不允许
3、状态查看
命令:git status
查看工作区、暂存区状态
4、添加到暂存区
命令: git add [file name]
将工作区的“新建/修改”添加到暂存区
5、移除暂存区文件
命令: git rm --cached [file name]
6、提交
命令:git commit -m "commit message" [file name]
将暂存区的内容提交到本地库
7、查看历史记录
命令:git log
多屏显示控制方式:
空格向下翻页
b 向上翻页
q 退出
显示漂亮格式一行的日志
命令:git log --pretty=oneline
显示一行的日志
命令:git log --oneline
命令:git reflog
8、前进后退
** 本质
~~ 基于索引值操作[推荐]
命令:git reset --hard [局部索引值]
git reset --hard ce2a89b
~~ 使用^符号:只能后退
命令:git reset --hard HEAD^
注:一个^表示后退一步,n 个表示后退 n 步
~~ 使用~符号:只能后退
命令:git reset --hard HEAD~n
注:表示后退 n 步
9、删除文件找回
前提:删除前,文件存在时的状态提交到了本地库。
操作:git reset --hard [指针位置]
说白了,就是移动指针到删除文件之前的版本、
10、比较文件差异
** git diff [文件名]
将工作区中的文件和暂存区进行比较
将暂存区文件提交到本地库,然后重新执行diff命令
这里证明了,确实是跟暂存区里面进行对比哦
命令:git diff [本地库中历史版本] [文件名]
不带文件名比较多个文件
三、Git 命令行操作 ~~· 远程库相关
1、创建远程库地址别名
命令:git remote -v 查看当前所有远程地址别名
命令:git remote add[别名] [远程地址]
2、推送到远程库
git push [别名] [分支名]
在gitHub上创建远程仓库
在项目中,使用git上传
到github查看效果图:
3、克隆~从远程仓库上下载项目到本地上
命令:git clone [远程地址]
~~ 效果.
完整的把远程库下载到本地
创建 origin 远程地址别名
初始化本地库
4、查看分支
命令:git branch -v
5、创建分支
命令:git branch [分支名]
6、切换分支
命令:git checkout [分支名]
7、查看当前所处的分支
命令:git status
或者
命令:git branch -v
8、合并分支
第一步:切换到接受修改的分支(被合并,增加新内容)上
命令:git checkout [被合并分支名]
1)在xiaozheng20181207分支上,增加“111 add by xiaozheng20181207” ,并提交到本地库
2)切换回master分支,master分支,没有“add 111 by xiaozheng20181207”
想去合并掉xiaozheng20181207分支的代码,执行下面的命令
第二步:执行 merge 命令
命令:git merge [有新内容分支名]
8、解决冲突
** 冲突的原因:不同的分支同时去修改了同一个文件。
举例:
源代码为:
111 add by xiaozheng20181207
master分支修改如下:
111 add by xiaozheng20181207 and master
xiaozheng20181207分支修改如下:
111 add by xiaozheng20181207 no no master
那么此时在合并的时候,git它就不知道该使用谁的代码,因此会报版本冲突
** 冲突的表现
** 冲突的解决
第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意的程度,保存退出
第三步:git add [文件名]
第四步:git commit -m "日志信息“
注意:此时 commit 一定不能带具体文件名