Git常用操作指南(附图文)

简介: 获取Git仓库(Git repository)使用Git的第一步是要获取一个Git仓库,我们使用Git的操作对象都是存放在Git仓库里,获取Git仓库的方式有两种:导入一个项目或目录到Git,初始化(init)生成Git仓库; 从远程服务器克隆(clone)一个Git仓库。

获取Git仓库(Git repository)

  • 使用Git的第一步是要获取一个Git仓库,我们使用Git的操作对象都是存放在Git仓库里,获取Git仓库的方式有两种:
  • 导入一个项目或目录到Git,初始化(init)生成Git仓库;
    从远程服务器克隆(clone)一个Git仓库。

初始化仓库(init)

若我们需要使用一个项目或目录生成一个Git仓库,只需要通过命令行进入该目录,执行如下Git指令:

git init

此操作将在此目录生成一个.git子目录,该目录包含整个仓库结构,即仓库的所有文件;同时会检出(checkout)一个默认工作分支,通常名为master。

此时,我们只是初始化生成了一个Git仓库,还未添加需要进行版本控制的对象–文件或目录。

这里写图片描述


克隆仓库(clone)

很多时候,我们需要从远程服务器获取一个已存在的Git仓库,我们只需要使用如下指令:

git clone https://github.com/HuangQinJian/WeiBo

git clone后面跟着的url就是已存在的Git仓库地址,我们需要知道的是Git克隆是对服务器上仓库的一次近乎完整的数据拷贝,当前仓库项目的所有文件及其各版本历史都会被获取。

执行如上指令后,会在当前目录创建一个WeiBo目录并在WeiBo中初始化一个.git子目录,拉取仓库的所有数据,然后根据仓库(或项目)的最新版本检出(check out)一个工作分支,通常该分支默认名称为master。

这里写图片描述


工作目录及其内对象的状态

相关指令:

git status

当我们获取一个仓库,如克隆一个远端仓库后,在仓库目录执行上面指令,如图所示:

这里写图片描述

  • 图中第一行on branch master告诉我们当前我们处在名为master的分支;
  • 第二行up-to-date with ‘origin/master’,说明目前分支与远程仓库的master分支保持同步最新版本;
  • 第三行working directory clean,说明目前仓库中没有新加或修改过的对象(文件或目录)。

添加对象(git add)

添加版本控制对象的指令是git add,比如,我们可以使用如下指令添加一个test.txt文件,当然我们首先需要在仓库目录下,创建该文件(任意方式创建),查看状态:

这里写图片描述

如上图,显示test.txt文件为Untracked file,并且提示:use git add to track; 然后使用git add指令后:

git add test.txt

再次执行git status指令:

这里写图片描述

如上,出现:Changes to be committed,说明该文件已被标记(tracked)且被暂存,我们可以进行提交了。


提交变更(git commit)

所有的变更,最终都需要提交,才能在本地持久化报存,在将所有变更暂存(git add)后,我们就可以进行提交了,相关指令就是:

git commit

在输入如上指令后,将进入Git commit信息编辑状态:

这里写图片描述

我们可以编辑本次提交的备注信息,其中的默认备注信息都以#开头,表明提交时会被忽略。

git commit指令告诉Git持久化记录(提交)我们暂存区(staging area)中的快照,任何未被暂存的变更,不会被添加进暂存区的快照,仍然保留在当前工作目录,我们可以随后提交。

注意:此时变化只是在本地持久化报存!!!并没有更新到版本库中,即GitHub网页上,需进行git push origin master操作,即最后一步操作!!!


除了使用默认的git commit指令,我们还可以添加-v参数,在提交信息中显示变更内容,如下:

这里写图片描述

如上图,和之前的比较,除了基本的提示,还有文件变更内容提示,可以避免某些误提交。


行内输入提交信息(git commit -m)

当然,Git还支持我们使用-m参数,指明我们在使用git commit指令时直接填写提交备注信息:

这里写图片描述


查看提交历史(git log)

本节要介绍的是如何查看之前的提交历史及信息,你应该知道的git log指令,
默认地,不带参数时,执行git log指令,输出的是当前仓库按逆序排序(最近提交在最前)的提交记录:

这里写图片描述


删除对象(git rm)

很多时候,我们也会需要从Git仓库中删除某些对象,rm就是删除文件或目录的指令,但是需要特别强调的是,该指令只是将某对象从当前工作目录删除,如:

这里写图片描述

使用rm后,当前状态是”Changes not staged for commit:”此次变更未被暂存和提交。
若你需要将某对象从已标记文件或暂存区删除,则需要使用git rm指令,如下:

这里写图片描述

使用git rm后,变更会被暂存。


当修改了最后一次提交的修改操作,意味着已经准备好将更改。推操作的数据永久存储的Git仓库。推操作成功后,其他开发人员可以看到Git仓库的变化!!!

这里写图片描述

Git仓库的变化成功地推到版本库,现在其他开发人员可以查看他的变化进行克隆或更新操作。


分支相关操作

1、查看远程分支有哪些

git branch -a

2、创建新分支

git branch testing

3、当前所在的本地分支

git log --oneline --decorate

4、分支切换

git checkout testing

5、删除本地分支

git branch -d testing

6、删除远程分支

git push origin --delete testing

Git fetch和pull的区别

Git中从远程的分支获取最新的版本到本地有这样2个命令:

git fetch:相当于是从远程获取最新版本到本地,不会自动merge

git fetch origin master
git log -p master..origin/master
git merge origin/master

以上命令的含义:

首先从远程的origin的master主分支下载最新的版本到origin/master分支上;然后比较本地的master分支和origin/master分支的差别;最后进行合并。上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新的版本到本地的tmp分支上之后再进行比较合并

git pull:相当于是从远程获取最新版本并merge到本地

git pull origin master

上述命令其实相当于git fetch 和 git merge 在实际使用中,git fetch更安全一些。因为在merge前,我们可以查看更新情况,然后再决定是否合并结束。

相关文章
|
4月前
|
开发工具 git
记IDEA Git版本回退并push到远程操作
记IDEA Git版本回退并push到远程操作
110 1
记IDEA Git版本回退并push到远程操作
|
4月前
|
开发工具 git 开发者
|
4月前
|
开发工具 git
web后端-IDEA的Git操作
web后端-IDEA的Git操作
|
4月前
|
Linux 网络安全 开发工具
Git拉取代码的完整示例操作
Git拉取代码的完整示例操作
173 0
|
4月前
|
Shell 开发工具 git
git相关操作
git相关操作
|
2月前
|
Ubuntu 开发工具 git
git 超实用教程【人人必会!】(含大厂的 git 操作规范)
git 超实用教程【人人必会!】(含大厂的 git 操作规范)
44 0
|
3月前
|
开发工具 git
idea的git reset current branch to here操作详解
idea的git reset current branch to here操作详解
216 1
|
4月前
|
开发工具 git 开发者
【专栏】探讨了 Git 中的 `git rebase` 操作,它用于重新应用提交到另一分支,改变历史顺序
【4月更文挑战第29天】本文探讨了 Git 中的 `git rebase` 操作,它用于重新应用提交到另一分支,改变历史顺序。与 `git merge` 不同,rebase 重写提交历史,提供简洁线性的历史记录。文章介绍了 rebase 的基本操作、应用场景,如整理提交历史、解决冲突和整合分支,并强调了使用注意事项,如避免在公共分支上操作。尽管 rebase 可以带来整洁的历史和冲突解决便利,但其潜在的风险和可能导致的历史混乱需谨慎对待。理解并恰当使用 `git rebase` 可以提升开发效率和代码质量。
155 1
|
4月前
|
开发工具 git 开发者
掌握常见Git操作:技巧与实践
掌握常见Git操作:技巧与实践