git的学习笔记
对Git的理解认知
起初,对这款软件非常的陌生。并不知道其真正作用。通过百度以及廖雪峰老师的介绍,Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。首先Git软件为我们在单机与服务器之间搭建了桥梁。既可以从单机向服务器提交代码,也可以将服务器上最新版的代码fetch下来。其次版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。
Git的相关指令
1.初始化仓库(Git init)
如果没有克隆远程仓库,需要创建一个新的Git代码库
运行git init命令初始化仓库,将会创建一个.git文件夹,这个文件夹是Git来跟踪管理版本库。
2.添加文件(Git add)
在当前文件夹下创建一个HelloWorld.java程序
使用git status命令可以查看当前仓库状
提示说明有未跟踪(untracked)的文件,可以使用git add
再次使用git status命令可以看到发生的变化,提示changes to be committed说明可以进行提交了。
3.提交(Git commit)
使用git commit -m "提交信息" 命令将暂存区的所有文件提交到本地仓库,提交时要求写上提交信息,注意双引号必须是英文半角的。
提交后用git log查看提交记录
4.文件修改和撤销
对文件进行修改后,通过git status查看,显示一个文件进行了修改:
可以执行git diff查看文件做了哪些修改:
红色字体表示是删除的内容,绿色字体表示是添加的内容。
如果想撤销这些修改,执行git checkout 文件名
文件修改后,进行add和commit就行了
文件add后尚未commit时,可以通过命令git reset HEAD 文件名进行撤销
文件commit后,用gitlog查看提交记录,现在已经有三个提交的版本了。每个版本都有一行黄色commit开头的哈希字串,这是每个提交的唯一ID。
文件已经提交后,如果想撤销,则执行git reset --hard 9316bda(取哈希字串的前7位即可),提示HEAD已经指向9316bda了,用git log查看,本地仓库已经回退到第一个版本了。
5.中文乱码问题
关于git status中文乱码问题,可以执行git config --global core.quotepath false命令。
6.推送本地仓库的更新到远程仓库
文件提交到本地仓库后,可以执行git push origin master将本地仓库上传到远程仓库,默认情况下,origin指的是本地仓库在远程仓库的版本,master指的是本地仓库的master分支。第一次push的时候,可能需要输入在码云注册的用户名和密码。
查看码云项目页面,文件HelloWorld.java已经上传到服务器。
抓取远程仓库的更新到本地仓库
执行git clone命令后,自动创建了本地的master分支,用于跟踪远程仓库中的origin/master分支。当远程仓库的内容更新后,可以通过命令git pull或者 git pull origin master, 将更新的数据抓取到本地仓库,合并到工作目录的当前分支。
执行git pull命令时,本地做的提交和服务器上的提交可能有差异,导致合并冲突,此时,需进行冲突处理。