命令:
git init
首先新建一个文件夹,把他当作我们要用git来管理的一个项目文件。右键点击GitBashHere
会弹出一个命令框,我们执行git init
这代表我们已经初始完成
git status
这个告诉我们当前在master分支上,没有提交记录,最后一行告诉我们没有内容需要提交
其它git状态下面会讲到
git add [filename/.] # . 代表当前文件中的所有内容
此命令表示将工作区的内容提交到暂存区
这里先新建一个test.txt文件并且键入hello git
这时再查看状态
告诉我们,此时有新的文件进来了,它可以去提交,于是使用git add命令,下方的警告实是在安装git的时候就会告诉你的替换规则,不用管他。这时再查看状态
告诉我们已经将test.txt文件提交到了暂存区,同时还提示给我们另外一个命令
git rm --cached [filename]
该命令是将暂存区的文件提交到本地库
git commit -m "必要的说明"
这里说明该文件已经被追踪到了,剩下就是上传到远程仓库进行管理
git remote add origin 远程仓库地址 #与远程仓库建立连接
git remote rm origin # 删除已和远程仓库建立的连接
git push origin master #提交到master分支,或者其它分支,自己定义即可
git push -u origin master #-u参数,可简化下次直接git push即可
git remote -v
git push origin master #master可以改为任意的分支
进行上传
github上查看远程仓库,文件已经上传了上去
这时再对test.txt文件进行修改,查看状态,这里说明已经对工作区的文件进行了修改
我们再执行添加,提交操作
git log
git log --pretty=oneline #日志以一行显示,哈希值全部显示
git log --oneline #日志以一行显示,哈希值显示7位
git reflog # 显示当前版本移动到其它版本移动的步数,并且显示所有的历史版本
这里有多个其中HEAD指向的表示当前版本,即刚才修改提交的版本,而后续的回滚等操作,实际上就是移动HEAD这个指针进行的。
为了方便叙述版本前进后退,多进行几次提交
一行显示
显示版本移动步数HEAD{NUM},NUM表示移动到当前版本的移动步数
git reset --hard 索引值 # 索引值可以只取最后7位即可
git reset --hard HEAD^ #有几个^符号,表示往后退几个版本
需要去历史记录数版本数
git reset --hard HEAD~[num] # 表示回退num个版本
同样需要去历史记录中数版本个数
git reset参数对比:
--soft #仅仅在本地库移动指针
暂存区 工作区
本地库
--mixed #在本地库移动HEAD指针,重置暂存区
工作区
本地库 暂存区
--hard #在本地库移动HEAD指针,重置暂存区并且重置工作区
前提:删除前,文件存在时的状态已经提交到了本地库
首先,创建test1.txt文件,提交后删除
可以看到,工作区已经没有test1.txt文件里,这里git告诉我们可以把删除的记录进行提交
提交到本地库所有的版本git都会记录,这样就i可以恢复文件。这里我们可以回退到上一个没有删除test1.txt的版本
可以看到test1.txt文件找回来了。当删除操作知识添加到了暂存区,没有提交到本地库时,删除了工作区的莫格文件,则找回如下
git diff [filename] #在暂存区,比较filename文件的变化
git diff HEAD [filename] #和本地库中的版本进行比较
我们在test1.txt中加入一行语句,查看文件变化
绿色表示新添加的,如果是删除文件里的一些内容,则会用红色来标记。如果提交到暂存区,则无法比较,需要带上HEAD指定某个版本
什么是分支?
我的理解:在版本控制过程中,使用多条线同时推进多个任务
多个分支合并或修复bug
git branch 分支名 #创建分支
首先查看当前状态,发现在master主分支上
当然也可以使用如下命令查看所有分支
git branch -v
git checkout 分支名 #切换到指定分支
git checkout -b 分支名 #创建并切换到指定分支
3. 提交到分支
切换到分支提交即可,此时可以看到,test_a这个分支已经变成了最新的版本
4. 合并分支
第一步:切换到被合并,需要增加新内容的分支上
第二部:执行如下命令
git merge branchname # 表示把branchname的内容合并合并到当前分支上
5. 冲突解决
不同分支下对同一个文件都进行了修改,那么当要合并的时候,git不知道需要以哪一个位准进行合并,这时候就需要手动合并
冲突体现:
第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意程度,保存退出
第三步:git add [文件名]
第四步:git commit -m “日志信息”
注意,这里commit后面不能加上文件名,否则会报错
git clone 仓库远程地址
git pull origin master
在new_test中的test.txt中随便写入几句话后我们提交
再去远程仓库查看,发现内容已经改变
这时切换到gittest目录下,进行拉取
解决冲突
git pull origin master