首页 > 其他分享 >Git

Git

时间:2022-08-28 20:11:10浏览次数:82  
标签:git -- 标签 tag 仓库 Git

Git

​ 免费、开源的分布式版本控制系统

​ 客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

Pro Git

Learn Git Branching

基本概念

中心代码仓库

​ 每一个developer本地的代码仓库(repository)都是一个功能完整,历史完整的仓库,它们是完全等价的。在Git的开发流程中,我们会把其中一个代码仓库人为地定义为blessed repository(受庇佑的代码仓库)来作为中心代码仓库

Staging Area

staging_area

​ 所有代码的编辑都发生在 working directory, 而所有的 committing 都发生在 staging area。所以用户必须先把要提交的代码添加到暂存区。

Origin

​ 因为 Git 是分布式的,所以除本地仓库以外,会存在很多个等价的远程代码仓库。因此,在本地的配置文件中,会以 remote 字段记录其他远程代码仓库的别称。origin 是其中最常见的别称,通常用来标记 blessed repository 的地址。

常用命令

http://www.cheat-sheets.org/saved-copy/git-cheat-sheet.pdf

1. 初始配置

1. 设置用户名和邮件地址

​ 如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。

​ 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

$ git config --global user.name "io888"
$ git config --global user.email ioWork@foxmail.com

2. 查看配置信息

查看所有信息

$ git config --list

查看某一项配置

$ git config user.name

$ git config user.email

3. 让 Git 显示颜色

$ git config --global color.ui true

4. 配置别名

​ 使用git status命令时,我们可以通过配置别名的方式将其配置为git st,在使用时就比输入 git status简单方便很多。

常用别名配置:

$ git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
$ git config --global alias.unstage 'reset HEAD'
$ git config --global alias.last 'log -1'

$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

2. 撤销暂存区的修改

$ git reset HEAD test.py

​ 把暂存区的修改撤销掉(unstage),重新放回工作区。

3. 显示最后一次提交信息

$ git log -1

4. 建立仓库

  • cd 至想要建立仓库的目录

    $ cd /e/Practice/learning-git

  • $ git init

​ 建立后,目录下会多一个 .git 的文件夹,这是Git 来跟踪管理版本库的。如果没有看到 .git 目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看到了。

5. 克隆现有仓库

$ git clone <url>

$ git clone https://codechina.csdn.net/codechina/help-docs

​ 这会在当前目录下创建名为 help-docs 的目录,并在这个目录下初始化一个 .git 文件夹, 从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。 所有的项目文件都已经在 help-docs 中,等待后续开发和使用。

自定义本地仓库名:

$ git clone https://codechina.csdn.net/codechina/help-docs mydocs

6. 将文件提交至仓库

  • $ git add readme.txt

    暂存文件

  • $ git commit -m "wrote a readme file"

-m 后面输入的是本次提交的说明,可以输入任意内容。

commit 可以一次提交很多文件,所以你可以多次 add 不同的文件。

执行成功后:

$ git commit -m "wrote a readme file"
[master (root-commit) 50ed06b] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt
  • file changed:1个文件被改动(新添加的readme.txt文件)

  • insertions:插入了两行内容(readme.txt有两行内容)

7. 查看仓库当前状态

$ git status

​ 查看 工作目录中有哪些文件还没有放进暂存区 以及 暂存区中有哪些内容还没有提交到仓库

8. 查看修改内容

$ git diff

9. 查看全部提交记录

$ git log

$ git log --pretty=oneline

使用 Q 退出

10. 移步至某一版本

HEAD 表示当前版本

HEAD^ 表示上一个版本

HEAD^^ 表示上上一个版本

HEAD~100 表示上100个版本

$ git reset --hard HEAD^

$ git reset --hard e55063a

11. 查看文件内容

$ cat readme.txt

12. 查看命令记录

$ git reflog

可以查看历史版本号 commit id

13. 重新提交

$ git commit --amend

​ 这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,在上次提交后马上执行了此命令), 那么快照会保持不变,而你所修改的只是提交信息。

14. 撤销文件的修改

$ git checkout -- readme.txt

$ git restore readme.txt

​ 这是一个危险的命令,你对那个文件在本地的任何修改都会消失——Git 会用最近提交的版本覆盖掉它。

git checkout / restore 其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!

15. 删除文件

本地删除:

$ rm test.txt

仓库中删除:

$ git rm test.txt

16. 分支

创建分支

  • $ git checkout -b dev

创建了 dev 分支

相当于:

$ git branch dev
$ git checkout dev
  • $ git switch -c dev

    创建并切换到新的dev分支

查看当前分支

$ git branch

切换分支

$ git checkout master

$ git switch master

合并分支

$ git merge dev

合并指定分支到当前分支

删除分支

$ git branch -d dev

17. 标签

轻量级标签(lightweight),创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

含附注的标签(annotated),附注标签实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明。

打标签

  • 默认标签是打在最新提交的 commit

$ git tag <name> $ git tag v1.0

  • 打历史版本的标签,加上版本号

$ git tag v0.9 fb8b190

  • 创建带有说明的标签,即含附注的标签(annotated)

$ git tag -a v0.1 -m "version 0.1 released" 187f963

-a 指定标签名,-m 指定说明文字

  • 创建一个带 gpg 签名的标签

$ git tag -s v1.2 -m 'my signed 1.2 tag'

查看所有标签

$ git tag

查看标签信息

$ git show v0.9

删除标签

  • 本地

$ git tag -d 'v0.9'

  • 删除已推送tag
$ git tag -d v1.0
$ git push origin :refs/tags/v1.0

推送 tag

  • 推送某个tag

$ git push origin v1.0

  • 一次性推送本地tag

$ git push origin --tags

忽略特殊文件

.gitignore

​ 有些时候,你必须把某些文件放到 Git 工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件等等,每次git status都会显示Untracked files ...,这种情况下,就可以实用忽略特殊文件 .gitignore 来很方便的解决这个问题。

​ 在 Git 工作区的根目录下创建一个特殊的 .gitignore文件,然后把要忽略的文件名填进去,Git 在每次进行提交的时候就会自动忽略这些文件。

强制添加被忽略文件

使用 -f 强制添加

$ git add -f App.class

检查规则

$ git check-ignore

添加例外规则

! + 文件名

!App.class

标签:git,--,标签,tag,仓库,Git
From: https://www.cnblogs.com/BolgSpace-ofMine/p/16633521.html

相关文章

  • Git 11 不同项目设置不同提交人
    参考https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0版本2.35.1.2前面介绍了可以给Git设置全局提交人,这样当前电脑所有项目提交人都会变......
  • Github
    下载仓库中指定分支下的指定目录以https://github.com/spring-projects/spring-boot.git仓库的2.5.x分支为例,url地址为:https://codeload.github.com/spring-proj......
  • GitHub访问速度过慢的解决办法
    1、打开网站:https://www.ipaddress.com/2、查询IP:查询github.com,记录IP:140.82.113.4查询github.global.ssl.fastly.net,记录IP: 151.101.1.1943、修改dns缓存打开本地文......
  • Git新建本地仓库
    我们在本地环境新建Git仓库时,通常有两个方法:将本地代码提交到Git仓库中、从别人的服务器中克隆代码到本地的Git仓库中。1.将本地代码提交到Git仓库中新建你需要提交的文......
  • Git介绍及使用
    Git其实就是一个代码版本控制工具,是项目中用来协作管理代码的。代码版本控制工具,也就是代码管理工具,他的发展有三种:本地管理、集中式管理、分步式管理1.本地管理本地管......
  • git命令
    Git常用操作命令:1)远程仓库相关命令检出仓库:$gitclonegit://github.com/jquery/jquery.git查看远程仓库:$gitremote-v添加远程仓库:$gitremoteadd[name][url......
  • 手把手教你创建专属个人助理,GitHub免费的
    今天推荐的这个项目是「BotBay」,致力于创建专属的拟人机器人。理想中它可以接入不同的平台【微信、5G】,作为每一人完成日常工作生活专属助理,你可以给它起一个名字,这样就可......
  • Git 基础知识总结
    Git基础git和svn对比1、git是分布式,svn是集中式2、git把内容按元数据方式存储,svn按文件进行存储3、git分支和svn分支不同4、git的内容完整性要优于svn......
  • GitHub无法访问、443 Operation timed out、OpenSSL SSL_connect: SSL_ERROR_SYSCALL
    很长时间没有使用GitHub了,心血来潮将本地的项目传送到GitHub上却发现不能正常工作。花了一上早上将问题解决了,于是将问题解决过程记录一下。首先出现的问题是Push代码到远......
  • 修改GitHub上项目语言显示的问题
    最近将自己写的JavaWeb程序放到github上了。由于使用了富文本编辑器、jQuery、Bootstrap等第三方插件,导致js、css等代码远远超过你自己写的Java代码,导致在GitHub显示的语言......