部分内容参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
使用 分布式版本管理工具 Git 有一段时间了,但是一直没认真学习过,只是随用随看,感到很不开心,所以在这里系统的罗列一下基本功能:
一 创建版本库
1 新建目录
说明:创建版本库就是新建一个目录以后,用git的规则初始化一下这个目录,生成一些Git相关的文件;命令:
新建目录:mkdir learngit
进入目录:cd learngit
查看当前目录的路径:pwd
如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
2 初始化仓库
通过命令:git init 把这个目录变成Git可以管理的仓库;说明:这个时候会生成一个 .git 的目录;目录中有相关的版本库文件;
二 使用
1 新增文件
命令:git add 文件名,例如:git add read.txt ;说明:用命令git add告诉Git,把文件添加到仓库;
结果:执行命令的结果,如果没有任何显示,说明是正确的,Unix的哲学是 “没有消息就是好消息”,说明添加成功。
2 提交文件
命令:git commit 信息描述,例如:git commit -m "wrote a readme file"说明:用命令git commit告诉Git,把文件提交到仓库;
-m 后面输入的是本次提交的说明,可以输入任意内容;
结果:看显示信息解释 命令例如:
git add file1.txt
git add file2.txt file3.txt
git commit -m "新增了三个文件"
3 修改文件
相关命令:查看文件状态:git status, 可以查看仓库当前的状态,哪些文件可以提交,是否存在需要提交的文件;
查看文件不同:git diff , 顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,可以从上面的命令输出看到,我们在第一行添加了一个distributed单词。
提交文件:git commit -m "本次内容做了修改"。
4 版本回退
相关命令:查看提交历史:git log,,后面可以跟参数,查看多少次提交历史,例如:git log -3;
查看提交历史参数:git log --pretty=oneline
回退版本:git reset --hard 版本号,例如:git reset --hard 2e041bf8de3e24c044b7a81925cfed2f8c8b25fd,
回退说明:想要回退到哪个版本,必要要记住版本号,如果回退到某个版本以后,之后的版本号实验 git log 是看不到的,所以要记录一下回退点之后的版号,方便特殊情况使用;
匹配版本号问题:版本号没有必要全部一致,是模糊匹配;写前几位就可以,Git会自动去匹配,当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
查看内容: cat read.txt
其他:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间切换,使用命令git reset --hard commit_id。
切换前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返时间点在前的版本,用git reflog查看命令历史,以便确定要回到未来的哪个版本
5 更换远程服务器
相关命令:强行拉取合并:git pull origin master --allow-unrelated-histories
这个面对的问题是:
本地更换远程git 仓库地址后,拉取失败,错误信息:
git pull 失败 ,提示:fatal: refusing to merge unrelated histories
解决思路一般有两种:
第一种: 拉取新版本库,把本地的手工添加上去,然后提交;
第二种: 在本地版本库上,直接修改url,然后使用命令 :git pull origin master --allow-unrelated-histories ,
这样有可能会出现冲突,解决冲突,重新提交就可以了。