Git基本使用及常用命令

Git学习笔记

基本使用

提交分三步

第一 git add . 修改添加到缓存区

第二 git commit -m '修改内容说明'提交缓存区文件

第三 git push 向远程仓库推送。

常用命令

git config

git config 命令用于获取并设置存储库或全局选项(一般刚下载的git需要配置用户名和用户邮箱,以获取获取代码的权限)

可以通过git config来配置用户名和邮箱地址,便于我们将代码提交到远程仓库

git config --global user.name '你的用户名'
git config --global user.email '你的邮箱'

如果去掉 –global 参数只对当前仓库有效.

git init

命令格式:git init

git init: 用于初始化厂库

使用git init 命令后,会在命令输入的根目录下生成一个.git目录,该目录包括了一些资源数据。

也可以 git init 文件名或路径 在指定路径目录下初始化厂库、生成.git文件。

git clone

命令格式:git clone

git clone :将远程仓库的资源克隆到本地

git clone <url> [directory]

此命令的两个参数 url为仓库地址,directory为本地路径。directory可以省略,则默认会克隆url地址下的仓库到当前命令行输入路径。

git add

命令格式:git add [file1] [file2] ...

添加文件到暂存区:
git add file

添加指定目录到暂存区,包括子目录:

git add [dir]

常用命令为添加当前目录下的所有文件到暂存区:

git add .

当然我们也可以指定某一类文件,如将java文件添加到缓存中,可以使用如下命令:

git add *.java

git commit

命令格式:git commit -m [message]

[message] 可以是一些备注信息。

-a 参数设置修改文件后不需要执行 git add 命令,直接来提交:

git commit -a

git push

命令格式:git push <远程主机名> <本地分支名>:<远程分支名>

将本地分支的更新,推送到远程仓库中。

实例:git push origin newbranch:newbranch

如果本地分支名与远程分支名相同,则可以省略 :<远程分支名>

如果本地版本与远程版本有差异,但又要强制推送可以使用 –force 参数:

git push --force origin master

删除主机的分支可以使用 –delete 参数,以下命令表示删除 origin 主机的 master 分支:

git push origin --delete master

git pull

命令格式:git pull <远程主机名> <远程分支名>:<本地分支名>

git pull 其实就是 git fetchgit merge FETCH_HEAD 的简写。

git pull命令将远程仓库的资源拉取到本地。常用的用法,切换到主分支,然后git pull就可以了,此命令相当于本地主分支的资源与远程的仓库资源做了同步

将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并:

git pull origin master:brantest

如果远程分支是与当前分支合并,则冒号后面的部分可以省略 :<本地分支名>

git fetch

从远程仓库中下载资源,且和pull不一样,pull会合并资源,fetch不会

git rm

命令格式:git rm <file>

git rm <file> 将文件从工作区和暂存区删除

git rm用于删除文件

如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示.

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f <file>

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 –cached 选项即可

git rm --cached <file>

可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件:

git rm –r *

git mv

命令格式:git mv [file] [newfile]

git mv 命令用于移动或重命名一个文件、目录、软连接,如要将一个test.txt文件重命名为newtest.txt,则可以使用如下命令:

git mv test.txt newtest.txt

如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数:

git mv -f [file] [newfile]

Git分支管理

git branch

git branch 有多种命令格式:

  • **git branch**:查看分支命令,其中*号的分支为当前所在分支。git branch -a查看本地分支和远程分支
  • **git branch (branchname)**:创建分支命令, 我们也可以使用 git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作
  • **git checkout (branchname)**:切换分支命令
  • git branch -delete (branchname):删除分支命令,可以简化为git branch -d (branchname)

git merge

命令格式:git merge <需要合并的分支>

git merge <需要合并的分支>该命令执行后,会将需要合并的分支合并到当前分支

Git 标签

如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。

比如说,我们想为我们的 runoob 项目发布一个”1.0”版本。 我们可以用 git tag -a v1.0 命令给最新一次提交打上(HEAD)”v1.0”的标签。

-a 选项意为”创建一个带注解的标签”。 不用 -a 选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。 我推荐一直创建带注解的标签。不用 -a 选项也可以执行的,但它不会记录这标签是啥.

1
>$ git tag -a v1.0 

当你执行 git tag -a 命令时,Git 会打开你的编辑器,让你写一句标签注解,就像你给提交写注解一样。

现在,注意当我们执行 git log –decorate 时,我们可以看到我们的标签了:

1
2
3
4
5
6
7
8
>*   d5e9fc2 (HEAD -> master) Merge branch 'change_site'
>|\
>| * 7774248 (change_site) changed the runoob.php
>* | c68142b 修改代码
>|/
>* c1501a2 removed test.txt、add runoob.php
>* 3e92c19 add test.txt
>* 3b58100 第一次版本提交

如果我们忘了给某个提交打标签,又将它发布了,我们可以给它追加标签。

例如,假设我们发布了提交 85fc7e7(上面实例最后一行),但是那时候忘了给它打标签。 我们现在也可以:

1
2
3
4
5
6
7
8
9
10
>$ git tag -a v0.9 85fc7e7
>$ git log --oneline --decorate --graph
>* d5e9fc2 (HEAD -> master) Merge branch 'change_site'
>|\
>| * 7774248 (change_site) changed the runoob.php
>* | c68142b 修改代码
>|/
>* c1501a2 removed test.txt、add runoob.php
>* 3e92c19 add test.txt
>* 3b58100 (tag: v0.9) 第一次版本提交

如果我们要查看所有标签可以使用以下命令:

1
2
3
>$ git tag
>v0.9
>v1.0

指定标签信息命令:

1
>git tag -a <tagname> -m "runoob.com标签"

PGP签名标签命令:

1
>git tag -s <tagname> -m "runoob.com标签"

Git 远程仓库

前面我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。本本将使用 Github 作为远程仓库,来介绍Git 远程仓库的使用。

下面介绍远程仓库常用的几种指令:

  • git remote add:添加远程仓库
  • git remote:查看当前的远程仓库
  • git fetchgit pull:提取远程仓仓库
  • git push:推送到远程仓库
  • git remote rm:删除远程仓库

git remote add

命令格式:git remote add [alias] [url]

参数[alias]为别名, [url]为远程仓库的地址,如:我们可以将https://github.com/Yhq00/Yhq00.github.io.git

仓库添加到本地,并命名为test,操作如下:

git remote add https://github.com/Yhq00/Yhq00.github.io.git

git remote

命令格式:git remote,该命令可以查看当前有哪些远程仓库

git fetch、git pull

命令格式:git fetch [alias]git pull [alias]

git fetchgit pull可以提取远程仓库的数据,如果有多个远程仓库,我们可以在后面加仓库的别名,操作如下:

git fetch [仓库别名]

git fetch [仓库别名]

git fetchgit pull的区别:

  1. git fetch:相当于是从远程获取最新版本到本地,不会自动合并。
  2. git pull:相当于是从远程获取最新版本并merge到本地。

git push

命令格式:git push [alias] [branch]

该命令会推送你的新分支与数据到某个远端仓库.

git remote rm

命令格式: git remote rm [alias]

git remote rm删除远程仓库

到此,基本的git操作就介绍完了。

参考自:

Git 常用基本命令使用详细大全_git常用命令_坚强的小水滴的博客-CSDN博客

菜鸟Git教程

欢迎关注我的其它发布渠道