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 fetch
和git 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 fetch
、git 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 fetch
、git pull
可以提取远程仓库的数据,如果有多个远程仓库,我们可以在后面加仓库的别名,操作如下:
git fetch [仓库别名]
git fetch [仓库别名]
git fetch
和git pull
的区别:
git fetch
:相当于是从远程获取最新版本到本地,不会自动合并。git pull
:相当于是从远程获取最新版本并merge到本地。
git push
命令格式:
git push [alias] [branch]
该命令会推送你的新分支与数据到某个远端仓库.
git remote rm
命令格式:
git remote rm [alias]
git remote rm
删除远程仓库
到此,基本的git操作就介绍完了。
参考自: