Git使用
1. Git工作区域
Git Repository(Git仓库) :保存各种文件版本的数据库,可以向这个数据库中拉取各个文件版本或把更新后的文件推入数据库进行记录,是Git用来保存项目的元素据和对象数据库的地方,是Git最重要的部分,从其它计算机克隆仓库时,拷贝的是这里的数据,已经推入到这个数据库中的文件对应的状态是已提交(commited)。暂存区 :用来存储对当前已修改过并且作了版本标记的文件,在同一段时间内位于暂存区尚未提交的所有文件都属于同一个当前的把呢不能,这些标记使得对应文件被包含在下次提交的快照中。这个区域是一个文件,保存了下次将提交的文件列表信息,一般位于Git仓库目录中,这个区域的文件状态是已暂存(staged)。工作区(Working Directory) :是开发人员编写代码的地方,对于已经修改并保存的文件,都会存储在这个区域,等待转移到暂存区并提交。是对项目的某个版本独立提取出来的内容。从Git仓库的压缩数据库中提取出来的文件,是放在这个区域所在的磁盘上供使用或修改,这个区域的文件状态是已修改(modified)。
2. Git常用命令
Git常用命令:
命令 | 说明 |
---|
git init | 初始化仓库 | git checkout <branch> | 将存储库中的分支检出到工作目录中 | git add <file> | 将文件中的更改添加到更改集中 | git commit | 将工作目录中的更改集提交到仓库中 |
使用Git之前,需要在当前目录下运行git init 命令,该命令会把当前目录转换为一个Git工作目录,并会在当前目录下新建一个.git 仓库(隐藏文件夹)。 具体操作:
- 首先到指定的目录下(你想使用Git管理的目录),如
E:\GitTest ,右键,选择 Git Bash Here ; - 然后输入命令
git init ,发现E:\GitTest 路径下新建了一个.git 文件夹。
- 创建一个
test.txt 文件,然后输入 git status 命令,显示如下: - 创建
.gitignore 文件,输入文件内容:test.txt ,表示忽略test.txt文件;然后使用git add .gitignore ,增加该文件;再使用命令git status 查看:
3. 向仓库中添加文件操作
向仓库中添加文件流程:
git status # 查看当前文件状态git ad xxx # 将工作区文件提交到暂存区git commit -m"提交描述" # 将暂存区文件提交到Git仓库,“提交描述”是描述功能
4. Git本地仓库操作
初始化一个新的Git本地仓库的流程如下:
- 新建文件夹;
- 在文件夹内初始化Git;
- 向仓库中添加文件;
- 修改仓库文件并提交到仓库;
- 删除仓库文件;
具体操作命令如下:
mkdir git_test # 新建文件夹,git_test是新建的文件夹的名字
cd git_test # 将工作目录转到新建的文件夹 git_test
git init # Git初始化
touch test.txt # 创建文件 test.txt
git status # 查看当前文件状况
git add test.txt # 将工作去文件提交到暂存区
git commit -m"提交描述:上传test.txt文件,测试文件" # 将暂存区文件提交到Git仓库
vi test.txt # 修改test.txt文件,并保存
cat test.txt # 查看文件内容
git add test.txt # 将工作去文件提交到暂存区
git commit -m"提交描述:更改文件test.txt" # 将暂存区文件提交到Git仓库
rm rf test.txt # 文件夹内删除文件 test.txt
git rm test.txt # 仓库中删除文件 test.txt
git commit -m"提交描述:删除文件test.txt" # 提交删除文件test.txt
- 提交到仓库中后可以使用命令
git log 查看日志信息
git log
git log --oneline
git log --pretty=oneline # 将版本力是显示为一行,历史版本号全部显示
git reflog
git --graph # 查看分支合并图
- 当需要回退到某个版本时,可以使用命令
git reset ,执行版本回退后,本地工作区的内容会自动和回退到的版本库版本的内容保持一致
git reset --hard <索引值>
git reset --hard HEAD^ # 一个^代表后退一步,有几个^表示后退几步,只能后退
git reset --hard HEAD~<步数> # 根据步数后退,只能后退
git diff # 比较所有文件差异,如果所有已经修改的文件都添加到了暂存区,git diff不会返回任何内容
git diff <文件名> # 当前工作区文件和暂存区文件进行比较
git diff <历史版本> <文件名> # 当前工作区文件和历史版本进行比较
git diff --staged
git diff --cached # 这两个命令用于查看已暂存的文件和上一次提交后的文件的变化
git branch -v # 查看分支
git branch <branchname> # 从当前HEAD(工作目录)中创建一个新的分支
git branch -d <branchname> # 删除分支
git checkout -b <branchname> # 从当前HEAD创建一个新分支,并将工作目录切换到新分支
git checkout <branchname> --<path> # 将分支branchname中路径path下的文件检出到当前工作目录中
git merge <branchname> # 将分支branchname合并到当前分支
git merge --abort # 取消存在冲突的合并
git diff <branchname> --<path> # 显示当前工作目录和分支branchname之间在路径path下的差异
5. 移除文件
一种情况是希望可以从暂存区域中删除文件,但工作区域仍然保留这些文件 ,可以使用 git rm --cached filename 命令。 另一种情况是希望删除的文件已经在仓库(commit)或暂存区(add),想要完全删除这个文件 ,可以先在本地目录中删除这个文件,然后再使用git rm filename 命令把该文件从已跟踪清单中一并清除。
如果文件有过commit,邮箱把删除的文件从工作目录中删除了,那么删除的操作要提交两编。
|