(1)下载安装Git
前往git官网(https://git-scm.com/downloads)下载安装程序,按默认选项安装即可
安装完成后,在应用中找到“Git Bash”,出现一个类似命令行的窗口,说明git安装成功。可通过git –version查看当前git版本信息
安装成功后,还需要设置name和email地址
(2)Git本地仓库的创建和配置
在桌面打开git命令行,创建一个空目录
可通过pwd命令查看当前目录。为避免后续操作遇到问题,需确保目录名不包含中文
通过git init命令将该目录变成git可以管理的本地仓库
利用ls -ah命令可以发现当前目录下多了一个.git目录
(3)在本地创建一个C语言或者C++项目,将所有的项目源程序文件提交到本地库中。
在test文件夹中创建HelloWorld.cpp项目
通过git add命令将项目源程序文件添加到本地库中,没有任何显示说明添加成功
接着用git commit命令把文件提交到仓库,-m后面输入本次提交的说明
Git status命令可检查仓库是否有未提交文件
Git log命令可查看提交记录
(4)多次修改某一个源代码文件,进行多次提交。
修改HelloWorld源代码并保存
运行git status,输出显示HelloWorld.cpp文件被修改过,但还没有准备提交的修改
先将该文件添加到本地仓库,并用git status查看当前仓库状态
此时再对HelloWorld.cpp文件进行修改并保存
运行git status,可以看到有两个版本的HelloWorld.cpp,一个已经添加到了仓库准备提交,另一个还没有被添加
然后先用git commit命令提交前一版本,再运行git status时发现只剩下那个未添加版本
添加并提交该版本到仓库
(5)查看文件的历史记录,并且查看不同版本之间的差别。
通过git log命令可以查看文件的历史提交记录
可以通过git diff加上commit后的版本号来比较各历史版本之间的差别,下图中可看到第二次提交相比于第一次添加了一行输出“hello szu”
第二次和第三次相比则修改了输出语句,将szu改为shenzhen
而git diff后不加任何语句则会比较提交的最新版本与本地版本之间的差异,例如我们将HelloWorld.cpp文件进行修改并不添加至仓库,并运行git diff
(6)将文件恢复到前面的某个版本,给出详细的恢复过程。
先通过git log查看历史提交日志
先梳理一下这三次提交:
Wrote a cpp file 创建了初始的cpp文件,输出hello world;
First modify 在原先输出结果的基础上,添加了一行输出hello szu;
Second modify 将hello szu修改为了hello Shenzhen
本地HelloWorld.cpp文件保存的是第三次提交后的结果:
要将HelloWorld.cpp文件恢复到先前版本,需要用git reset命令,利用—hard参数指定回退版本,可以加上指定的版本号,或者加上HEAD^表示回退至上个版本
先尝试恢复到上个版本,即first modify版本,并发现历史提交日志中已经没有second modify,代码也回到了第二次提交时的状态
而git reset命令的原理是将其内部的HEAD指针指向了恢复的版本,因此仍可以回到第三次提交。在输入版本号时可以不写全,git会自动寻找版本
运行git log,可见已经回到了第三次提交的版本
(7)删除某一个提交文件,并且查看项目状态。
在test文件夹中新建NewFile.cpp文件,添加并提交至仓库
如果直接用rm命令删除文件,会导致工作区与版本库不一致,运行git status命令会告知文件被删除,而当前目录下也找不到该文件
此时如果确实要从版本库中删除该文件,就用git rm删除,并git commit提交删除操作
此时再运行git status,工作区与版本库已经保持一致,均没有NewFile.cpp文件,用git log命令也可以看到删除相关日志
(8)进入Github,尝试clone一个开源项目。
登录Github,选择一个开源项目,复制项目url
接着在准备存储项目的目录下打开git命令行,通过git clone命令将项目拷贝至本地
可以看到该项目已经拷贝成功,可以通过相应开发工具打开项目
(9)为某个文件创建分支,在分支中提交和对比文件。
用git branch命令创建dev分支,通过git checkout dev来切换到dev分支。这两个命令也可以用git checkout -b dev命令代替
用git branch命令可查看所有分支,当前分支前面会有一个*号
接着在dev分支上对HelloWorld.cpp文件进行修改并提交
切换回master分支
查看HelloWorld.cpp文件,发现修改不见了,因为刚才的提交是在dev分支上,master分支此时的提交点并没有变
可以通过git diff加上分支名来比较master分支和dev分支的代码差异
(10)将修改的内容合并到主分支
通过git merge命令可以将指定分支合并到当前分支
此时再运行git diff命令,master分支与dev分支此时没有差异
查看HelloWorld.cpp文件,也发现与dev分支的最新提交一样
合并完成后,可以通过git branch -d加上分支名删除指定分支
再查看branch,只剩下master分支
合并过程中还有种情况是代码发生冲突,例如feature1分支和master分支都有新的提交
运行git merge会显示与当前分支有冲突,无法自动合并
可以通过git status查看冲突文件
查看HelloWorld.cpp文件,发现git标记出了不同分支的内容
修改后重新提交即可
可通过git log加上参数查看分支的合并情况
(11)为项目增加本地和远程标签,并查看、删除标签
先在Github上创建一个远程库方便后续操作
在本地仓库下运行以下命令将本地仓库关联到Github仓库
接着用git push命令将本地库所有内容推送至远程库上
可以看到项目已成功上传
先切换到要打标签的分支,通过git tag加上标签名就可以打一个新标签
Git tag命令可查看所有标签
如果要对历史版本打标签,需要找到历史提交的commit id,可以通过git log查询
要给mergetest2这次提交打标签,就用git log加上标签名和commit id
Git show命令加标签名可查看标签信息
刚才创建的标签都只存储在本地,如果要推送某个标签到远程,可以使用命令git push origin加上标签名
可在GitHub上看到该标签
删除远程标签的话需要先从本地删除
再通过git push命令从远程删除
在GitHub上检查,删除成功
标签:基本,文件,git,命令,Git,提交,使用,cpp,分支 From: https://blog.csdn.net/Onlyyyy667/article/details/143325544