git 学习
先看几张图,简单理解一下 Git 。部分图片来自尚硅谷的 Git教程
- git 在本地的一个流转
- git 在代码托管中心的流转
1. 本地库操作
1. 初始化命令:git init
2. 设置签名
-
用户名
Email
地址命令
- 项目级别:仅在当前本地库范围内有效
-
git config user.name xxx
git config user.email [email protected]
- 信息保存的位置在项目下的
.git/config
里面
- 系统用户级别:登陆当前操作系统的用户范围
-
git config --global xxx 类似上面
- 在系统本地(当前用户的家目录)的
.gitconfig
里面
3. 常用命令
- 查看工作状态:
git status
- 新建一个文件
- 添加进暂存区
-
commit
至本地库,不加good.txt
即文件名,默认为所有的commit
文件加上一样的注释
2. 版本信息
1. git log
查看完整版本信息HEAD是指向当前版本的指针
2. git log --pretty=oneline
每条日志只显示一行
3. git log --oneline
4. git reglog
可以显示到某个版本需要移动几个步骤,移动 HEAD 指向。
5. 前进或后退当前版本(HEAD指针指向当前版本)
-
- 基于索引值(推荐)
-
-
git reset --hard 版本号
(就是最前面的索引值)
-
- 基于
^
符号 - 基于
~
符号
6. git help reset
查看某个命令的文档
7. 删除文件并找回
-
- 回退到上一个版本
- 如果没有提交到本地库,也可以直接回退回某一个版本
3. 分支管理
可以同时并行进行多个功能开发,分支之间相互不影响
1. 创建分支
git branch [分支名]
2. 查看分支
git branch -v
3. 切换分支
git checkout [分支名]
4. 合并分支
- 第一步:切换到接收修改的分支上
- 第二步:执行
merge
命令git merge [拿过来合并的分支]
5. 解决冲突
-
不同分支对同一个文件的相同地方做了不同的修改,合并的时候就会冲突,因为
git
这个时候不知道听谁的,这时候需要人为介入解决冲突
- 将冲突文件手工解决冲突后,将冲突文件重新添加和提交,此时
git commit -m "bakaka"
就不能再带文件名了
4. 本地库与远程仓库连接
1. 创建一个远程库(如 github)
2. 本地库推送到远程库
-
git remote -v
查看当前的远程库 -
git remote add origin https://github.com/balabala.git
相当于把我们的远程库取了一个别名叫做origin
-
git push origin master
向远程origin
库推送本地的master
分支
3. 从远程拉取到本地
git clone https://github.com/balabala.git
4. 邀请其他用户加入开发
在github里面有一个合作开发的选择,可以选择对方用户,并邀请他加入开发,就可以推送
5. 拉取远程仓库
- 先
fetch
拉取下来,决定好后就可以直接merge
-
git fetch [远程地址别名] [远程分支名]
-
git merge [远程库地址别名/远程分支名]
——> 注意中间的/
- 直接使用
pull = fetch + merge
(复杂的情况下冲突的概率比较大) -
git pull [远程仓库的别名] [远程分支名]
6. 解决冲突 -> 有冲突一定先解决,不要强行 push
5. gitignore文件书写
- 可以将新建一个
.gitignore
文件,放在全局 - 如果使用
idea
,自己重新写一个.gitignore
文件也可以 - Git 官网有参考,这个可以去网上搜一份儿,一直用