Git 命令详解

210次阅读
没有评论

共计 3165 个字符,预计需要花费 8 分钟才能阅读完成。

一、提交与修改

1. git init

git init 命令用于在目录中创建新的 Git 仓库。

在目录中执行 git init 就可以创建一个 Git 仓库了。

2. git clone

git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。

克隆操作将复制该项目的全部记录。

默认情况下,Git 会按照 URL 所指向的项目的名称创建本地项目目录。 通常就是该 URL 最后一个 / 之后的项目名称。如果想要一个不一样的名字, 可以在该命令后加上想要的名称。

如:

 git clone http://127.0.0.1/xxx.git my-project

3. git add

git add 命令可将该文件添加到暂存区。

1、添加一个或多个文件到暂存区:

git add [file1] [file2] ...

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

git add [dir]

3、添加当前目录下的所有文件到暂存区:

git add .

4. git status

git status 命令用于查看在上次提交之后是否有对文件进行再次修改。

5. git diff

git diff 命令比较文件的不同,即比较文件在暂存区和工作区的差异。

  • 尚未缓存的改动:git diff

  • 查看已缓存的改动: git diff --cached

  • 查看已缓存的与未缓存的所有改动:git diff HEAD

  • 显示摘要而非整个 diff:git diff --stat

1、显示暂存区和工作区的差异:

git diff [file]

2、显示暂存区和上一次提交(commit)的差异:

git diff --cached [file] 
# git diff --staged [file]

6. git commit

git commit 命令将暂存区内容添加到本地仓库中。

1、提交所有暂存区内容到仓库区

git commit -m [message]

2、提交暂存区的指定文件到仓库区

git commit [file1] [file2] ... -m [message]

3、不需要执行 git add 命令,直接提交

新创建的文件不能这样做,因为还没 add 过,git 不能进行追踪

git commit -a

设置提交代码时的用户信息

开始前我们需要先设置提交的用户信息,包括用户名和邮箱:

git config --global user.name 'test'
git config --global user.email test@qq.com

如果去掉 --global 参数只对当前仓库有效。

7. git reset

git reset 命令用于回退版本,可以指定退回某一次提交的版本。

只回退版本,不影响当前修改的文件

1、回退到当前版本(即清空当前暂存区内容)

HEAD 代表当前版本

git reset HEAD

2、回退所有内容到上一版本

git reset HEAD^

3、回退指定文件到上一版本

git reset HEAD^ test.txt

4、回退到指定版本

git  reset  052e

只回退版本,并将所有文件还原

--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交。

1、回退到当前版本(清空当前暂存区内容和还原工作区内容)

和上面类似,只不过将工作区内容也还原了

git reset --hard HEAD

2、将本地的状态回退到和远程的一样

git reset --hard origin/master

HEAD 说明:

  • HEAD 表示当前版本

  • HEAD^ 上一个版本

  • HEAD^^ 上上一个版本

  • HEAD^^^ 上上上一个版本

也可以使用 ~数字表示

  • HEAD~0 表示当前版本

  • HEAD~1 上一个版本

  • HEAD^2 上上一个版本

  • HEAD^3 上上上一个版本

8. git rm

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

运行 git commit 也会提示 Changes not staged for commit,需要先进行 git add .,再进行 git commit。

1、将文件在工作区删除,并提交到暂存区

git rm  <file>

2、强制删除

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。强行从暂存区和工作区中删除修改后的文件。

git rm -f <file>

3、从跟踪清单中删除(暂存区),保留工作区的内容

git rm --cached <file>

4、删除所有

git rm –r * 

9. git mv

git mv 命令用于移动或重命名一个文件、目录或软连接。

git mv [file] [newfile]

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

git mv -f [file] [newfile]

二、查看提交日志

1. git log

1、查看历史提交记录

git log

2、可以用 --oneline 选项来查看历史记录的简洁的版本

git log --oneline 

3、查看历史中什么时候出现了分支、合并

git log --graph

4、逆向显示所有日志

git log --oneline --reverse

5、看指定用户的日志

git log --author 

指定日期,可以执行几个选项:--since 和 --before,但是也可以用 --until 和 --after。

2. git blame

git blame <file>

三、远程操作

1. git remote

git remote 命令用于在远程仓库的操作。

1、显示所有远程仓库

git remote -v

2、显示某个远程仓库的信息

git remote show [remote]

3、添加远程版本库

git remote add [shortname] [url]

4、删除远程版本库

git remote rm [shortname]

5、修改远程仓库名

git remote rename [old_name] [new_name]

6、更改远程仓库地址

git remote set-url [shortname] [url]

2. git fetch

git fetch 命令用于从远程获取代码库,并存一份副本,不会覆盖自己的内容。

git fetch

要进行分支合并,工作区才能看见更新的内容。

git pull = git fetch + git merge

3. git pull

git pull 命令用于从远程获取代码并合并本地的版本。

命令格式如下:

git pull <远程主机名> <远程分支名>:<本地分支名>

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

git pull origin master:brantest

2、如果远程分支是与当前分支合并,则冒号后面的部分可以省略

git pull origin master

4. git push

git push 命用于从将本地的分支版本上传到远程并合并

命令格式如下:

git push <远程主机名> <本地分支名>:<远程分支名>

1、将本地的 master 分支推送到 origin 主机的 master 分支

git push origin master

相等于 git push origin master:master

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

git push --force origin master

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

git push origin --delete master

四、分支管理

1. 查看分支

git branch

2. 创建分支

git branch [branchname]

3. 删除分支

git branch -d [branchname]

4. 切换分支

git checkout [branchname]

创建并切换分支:git checkout -b [branchname]

5. 分支合并

git merge

五、标签

1. 查看标签

git tag

2. 创建标签

git tag v1.0

创建带注解的标签

git tag -a [tagname] 

3. 追加标签

git tag -a v0.9 85fc7e7

提醒:本文发布于504天前,文中所关联的信息可能已发生改变,请知悉!

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 
阿蛮君
版权声明:本站原创文章,由 阿蛮君 2023-03-09发表,共计3165字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2022-2024 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 蓝易云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock