目录
What
历史
- 始于Linx社区,最初Git是为辅助Linux内核开发的,来替代BitKeeper
- 免费、开源的
Git基本理论(核心)
工作区域
- 工作目录(Working Directory)
- Workspace:工作区,平时存放项目代码的地方
- 暂存区(Stage/Index)
- Index l Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
- 资源库(Repository或Git Directory)
- Repository:仓库区(或本地仓库),安全存放数据的位置,这里有所有版本的数据。其中HEAD指向最新放入仓库的版本
- master为主分支
- 远程的git仓库(Remote Directory)
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
工作流程
- 在工作目录中添加、修改文件
- 将需要进行版本管理的文件放入暂存区域
git add. #添加文件到缓存命令“.”表示所有文件
- 将暂存区域的文件提交到git仓库
git commit #提交命令
文件的4种状态
- Untracked:未跟踪
- 此文件在文件夹中,但并没有加入到git库,不参与版本控制,通过
git add
状态变为staged
- 此文件在文件夹中,但并没有加入到git库,不参与版本控制,通过
- tracked:已跟踪
- Unmodify:文件未修改
- 如果执行
git rm
移出版本库,则成为untracked文件 - 如果被修改,变为Modified
- 如果执行
- Modified:文件已修改
- 执行
git checkout
丢弃修改过,返回到unmodify状态,git checkout
即从库中取出文件,覆盖当前修改 - 执行
git add
可进入暂存staged状态
- 执行
- Staged:暂存状态执行
- 执行
git reset HEAD filename
取消暂存,文件状态为Modified - 执行
git commit
将修改同步到库中,库中的文件和本地文件变为一致,文件为unmodify状态.
- 执行
- Unmodify:文件未修改
Why
版本控制(Version Control)
帮助团队的开发人员协同工作,并存档其完整的工作历史记录的技术
版本控制相关工具(Tools)
- Git
- SVN ( Subversion )
- CVS( Concurrent Versions System )
- VSS (MicorosoftVisual SourceSafe )
- TFS (TeamFoundation Server )
- Visual Studio Online
分类(Classification)
- 本地版本控制(RCS)
- 集中版本控制(CVS)
- 分布式版本控制 Git
个人原因(Personal)
- 便于代码管理
How
安装
- 修改安装路径
- 更改默认编辑器
- Choosing the default editor used by Git
卸载
- 清除环境变量
- 卸载软件
启动
- Git Bash : Unix与Linux风格的命令行,使用最多(推荐)
- Git CMD : Windows风格的命令行
- Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令
常用Bash指令
Command | Meaning |
---|---|
cd | 改变目录 |
cd .. | 回退到上一个目录 |
pwd | 显示当前目录路径 |
ls(II) | 都是列出当前目录中的所有文件,ll(两个l)列出的内容更为详细 |
touch | 在当前目录下新建一个文件 |
rm | 删除一个文件 |
mkdir | 新建一个目录(文件夹) |
rm -r | 删除一个目录 |
mv | 移动文件 |
reset | 初始化终端/清屏 |
clear | 清屏 |
history | 查看命令历史 |
help | 帮助 |
exit | 退出 |
# | 表示注释 |
在windows当中Shift+右键可以打开Powershell
Git配置
- 查看配置:
git config -l
- 配置分类
- 系统配置
- 用户配置
- 用户名 :
git config --global user.name
- 邮箱密码:
git config --global user.email
- 用户名 :
- 配置文件:都在.gitconfig文件中
Git项目创建
创建本地仓库命令
- 创建全新的仓库
init #初始化
- 添加文件到缓存
add
- 提交命令
commit
- 查看状态
status
创建远程仓库命令
-
克隆远程仓库
clone https: //url #克隆一个项目和它的整个代码历史(版本信息)
-
添加文件到缓存
add
-
提交命令
commit
-
推送到远程仓库
push
-
查看状态
status
Git文件操作
查看文件状态
-
指定文件状态
git status [fi1ename]
-
所有文件状态
git status
忽略文件
在主目录下建立".gitignore"文件,需要忽略文件的创建规则︰
! | 名称的最前面 | 不略 | |
空行 | 忽略 | ||
# | 开始的行 | 忽略 | |
Linux通配符 | * | 代表任意多个字符 | 忽略 |
? | 代表一个字符 | 忽略 | |
[ ] | 可选字符范围 | 忽略 | |
{ } | 可选的字符串 | 忽略 | |
路径分隔符(/ ) | 名称的最前面,子目录中的文件不忽略 | 忽略 | |
名称的最后面,表示要忽略子目录 | 忽略 |
#为注释
*.txt #忽略所有.txt结尾的文件
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
bui1d/ #忽略bui1d/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt但不包括doc/server/arch .txt
使用Gitee
注册完善个人信息
设置绑定SSH公钥
- 生成
ssh-keygen -t rsa
- pub是公钥
- rsa非对称加密算法
- 添加到Gitee
- 创建库
克隆库到本地
IDEA集成Git
- 新建项目,绑定git
- 快速配置:拷贝远程git文件夹