Git与SourceTree学习

一、基础知识
(1)简介
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
(2)工作流程
克隆 Git 资源作为工作目录。
在克隆的资源上添加或修改文件。
如果其他人修改了,你可以更新资源。
在提交前查看修改。
提交修改。
在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
Git与SourceTree学习_第1张图片

(3)Git 工作区、暂存区和版本库
工作区:就是你在电脑里能看到的目录。
暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:
Git与SourceTree学习_第2张图片

图中左侧为工作区,右侧为版本库。在版本库中标记为 “index” 的区域是暂存区(stage, index),标记为 “master” 的是 master 分支所代表的目录树。
图中我们可以看出此时 “HEAD” 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
图中的 objects 标识的区域为 Git 的对象库,实际位于 “.git/objects” 目录下,里面包含了创建的各种对象及内容。
当对工作区修改(或新增)的文件执行 “git add” 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
当执行 “git reset HEAD” 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
当执行 "git rm --cached " 命令时,会直接从暂存区删除文件,工作区则不做出改变。
当执行 “git checkout .” 或者 "git checkout – " 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
当执行 “git checkout HEAD .” 或者 "git checkout HEAD " 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

二、基本操作
(1)创建仓库
git init 在目录中创建新的 Git 仓库
git clone 使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改
(2)基本快照
git add 将该文件添加到缓存
git status 查看项目的当前状态,查看在你上次提交之后是否有修改
git diff 查看执行 git status 的结果的详细信息
git commit 使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。
git reset HEAD 取消已缓存的内容
git rm 删除文件
git mv 移动或重命名一个文件、目录、软连接
git stash 把当前未提交的修改暂存起来,让仓库还原到最后一次提交的状态。常用于更新、同步代码或者保存多个修改版本等情况下。
https://jingyan.baidu.com/article/49ad8bceacac6b5834d8fa9a.html
(3)分支管理
git branch 创建分支
git merge 分支合并
(4)查看提交历史
git log
(5)Git 标签
git tag
(6)Git 远程仓库(Github)
git remote add 添加远程库,SSH文件设置
git remote 查看当前的远程库
git fetch 提取远程仓库
git push 推送到远程仓库
(7)实际操作
$ mkdir runoob-git-test # 创建测试目录
$ cd runoob-git-test/ # 进入测试目录
$ echo “# 菜鸟教程 Git 测试” >> README.md # 创建 README.md 文件并写入内容
$ ls # 查看目录下的文件
README
$ git init # 初始化
$ git add README.md # 添加文件
$ git commit -m “添加 README.md 文件” # 提交并备注信息
$ git remote add origin [email protected]:Laiyigui-young/runoob-git-test.git
$ git push -u origin master

三、示例操作
1、选择本地的文件夹,如我的文件目录是D:\研究生生活\大数据暑期实践项目\Git,在本文件夹目录下通过git bush操作打开以下操作界面,并将仓库代码的链接拷贝,如http://172.16.129.207:3000/bigdata/Calculate.git,通过git clone的操作,可以将线上的文件夹“克隆”到本地,将在本地生成一个名为Calculate的文件夹。
Git与SourceTree学习_第3张图片
Git与SourceTree学习_第4张图片

2、上传文件
如algorithm2.txt
git init //把这个目录变成Git可以管理的仓库
git add algorithm2.txt//文件添加到仓库
git commit -m “算法二代码” //把文件提交到仓库
git remote add origin http://172.16.129.207:3000/bigdata/Calculate.git //关联远程仓库
git push -u origin master //把本地库的所有内容推送到远程库上
如README.MD
git init //把这个目录变成Git可以管理的仓库
git add README.MD//文件添加到仓库
git commit -m “README.MD” //把文件提交到仓库
git remote add origin http://172.16.129.207:3000/bigdata/Calculate.git //关联远程仓库
git push -u origin master //把本地库的所有内容推送到远程库上
Git与SourceTree学习_第5张图片

更多操作查看:https://www.cnblogs.com/xiaosongbiog/p/7003601.html
错误解决参考链接:
https://blog.csdn.net/weixin_42288182/article/details/96568718
https://blog.csdn.net/calorand/article/details/53608553

3、观看提交历史
Git与SourceTree学习_第6张图片

你可能感兴趣的:(其他,git,github)