这是我参与「第四届青训营 」笔记创作活动的的第2天
在此之前,由于没有过团体开发项目的经历,所以对于Git也是止于了解,没有真正的上手实操过,但本次的青训营需要团队合作,为了在开发项目的时候不会出现差错,所以趁着还没有开课的这两天紧急补习了一下关于Git的基本操作,并在学习过程中记录了一些过程,也算是学有所成。
Git常用命令
设置用户签名
git config --global user.name Alan
git config --global user.email szxtjnu@gmail.com
签名的作用:
区分不同的操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
Git首次安装必须设置用户签名,否则无法提交代码。
初始化本地库
git init
如果想用git来管理目录,就需要初始化本地库.
初始化完毕后,相应目录下会生成.git文件夹
查看本地库状态
首次查看本地库状态
git status
首次查看本地库状态时会提示:nothing to commit(create/copy files and use "git add" to track)
添加暂存区
git add
使用命令将目录下的文件添加到暂存区之中,再使用git status查看状态,发现添加到暂存区中的文件变为绿色了
提交本地库
git commit -m
将暂存区的文件提交到本地库,并且注明版本信息
修改文件
当修改文件之后,使用git status查看状态,可以发现修改的信息,并且修改后的信息并没有被加入到暂存区。
可以使用git add 命令将修改信息提交的暂存区之中,并且可以使用git commit -m将暂存区中的文件提交到本地库之中
版本穿梭
查看精简版/完全版信息
使用命令git reflog可以查看精简版版本信息,包括版本号、版本提交次数等等
使用命令git log可以查看完全版版本信息,增加了更改者信息以及更改日期等信息
返回之前版本
通过命令git reset --hard '版本号'来完成版本回溯,完成操作后使用git status命令查看git版本状态,git会为本次的操作生成一个log,并且git的指针也会移动到相应的版本号之后。
Git进行版本穿梭,在底层是通过调用指针来完成不同的版本切换,而不是简单的复制粘贴
Git分支操作
什么是分支
在产品开发中,用户所使用的服务器和程序员所使用的服务器不是一个,开发所使用的服务器上运行的是一个产品代码的分支,而用户服务器上也有一套产品代码的分支。
同时,在版本控制的过程中,许多任务需要完成,我们可以为每个任务单独的创建一个分支,然后负责不同任务的人员可以独立开发,最终再进行整合。(分支底层也是指针的引用)
分支的好处
可以同时并行开发多个功能,提高开发效率
且在开发过程中如果存在分支开发失败的情况,可以单独对其进行删减操作,对于其他分支来说不受影响
分支的操作
| 命令名称 | 作用 |
|---|---|
| git branch 分支名 | 创建分支 |
| git branch -v | 查看分支 |
| git checkout 分支名 | 切换分支 |
| git merge 分支名 | 把制定的分支合并到当前分支上 |
查看分支
使用命令git branch -v可以查看分支
创建分支
使用git branch '分支名'可以创建新分支
切换分支
使用git checkout '分支名'来切换分支
切换分支后,使用git branch -v来查看分支,可以发现*指针已经指向所切换的分支,并且所切换的分支名称变为绿色
合并分支
使用git merge '合并分支名'可以将其他分支的文件与该分支合并
正常合并
如果使用命令合并,没有出现错误的话,就是正常合并
冲突合并
若两个分支在同一个文件的同一个位置有两套完全不同的修改方式,git就会提示我们,并要求操作者人为选择新代码的内容。
$ git merge hot-fix
Auto-merging hello.txt
CONFLICT (content): Merge conflict in hello.txt
Automatic merge failed; fix conflicts and then commit the result.
发生冲突后,git会处于MERGING的状态,即正在合并中,并未合并完成。
此时需要使用vim编辑器将需要修改的文件进行修改,并添加至暂存区。
且合并时,只会修改当前分支内容,被合并分支内容不会被修改
合并底层其实也是通过指针的移动来实现的
GitHub操作
创建远程仓库
首先在GitHub上创建一个代码仓库,并将远程地址连接复制到剪切板之中
切换到本地git bash中,可以先使用git remote -v来查看当前的代码仓库别名
使用git remote add '别名' '链接'来创建一个远程库别名
推送本地分支到远程仓库
使用git push '别名' '分支名'来将本地分支推送到远程仓库
拉取远程库代码到本地
使用git pull '别名' '分支名'来将远程端的分支拉取到本地仓库
拉取动作会自动提交到本地库,不需要手动提交
克隆远程仓库到本地
使用git clone '链接'来将远程端的代码克隆到本地,克隆public库不需要登录账号
IDEA使用git
配置忽略文件
将配置文件忽略掉可以屏蔽开发工具之间的差异
创建忽略规则文件xxx.ignore
便于被引用,该文件通常放在用户家目录下
# Complied class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
he_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
在git config之中引用忽略配置文件
在gitconfig文件中添加代码:
[core]
excludesfile = C:/Users/[自己账户用户名]/git.ignore
在IDEA中定位本地git程序
在IDEA的Setting中设置自己本机的git地址。
配置完成后,新建一个maven项目,并在VCS中开启git管理项目
使用IDEA克隆远程项目
在Git中选择clone,并将URL填入,等待Git操作即可