“Git:基本操作”的版本间差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
|  (→远程) |  (→标签) | ||
| 第246行: | 第246行: | ||
| == 标签 == | == 标签 == | ||
| tag实际就是一个指向commit的指针,将一个有意义的tag名称与commit相关联。<br/> | |||
| git标签有两种类型: | |||
| # 轻量级的(lightweight):实际上它就是个指向特定提交对象的引用。 | |||
| # 含附注的(annotated):<pre>实际上是存储在仓库中的一个独立对象,有自身的校验和信息,包含标签名称,电子邮件地址和日期,及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证。</pre> | |||
| {| class="wikitable" | |||
| |- | |||
| ! 命令 !! 说明 !! 备注 | |||
| |- | |||
| | '''<code>git tag</code>''' | |||
| | git标签 | |||
| |  | |||
| Note: | |||
| # <code>git tag</code>:查看所有标签; | |||
| # <code>git tag <tagname></code>:创建标签(默认指定到当前分支); | |||
| # <code>git tag <tagname> <commitID></code>:创建标签,并关联到指定分支; | |||
| # <code>git tag -a <tagname></code>:创建带注解的标签(Git会打开编辑器来编辑tag的注解信息); | |||
| # <code>git tag -d <tagname></code>:删除标签; | |||
| # <code>git show <tagname></code>:查看tag关联的commit信息 | |||
| # <code>git tag -a <tagname> -m "标签信息"</code>:指定标签信息 | |||
| # <code>git tag -s <tagname> -m "标签信息"</code>:PGP签名标签 | |||
| 如: | |||
| <syntaxhighlight lang="PowerShell"> | |||
| Microsoft Windows [版本 10.0.19041.508] | |||
| (c) 2019 Microsoft Corporation。保留所有权利。 | |||
| D:\git\eijux>git tag | |||
| D:\git\eijux>git tag rc1.0 | |||
| D:\git\eijux>git tag -a rc2.0 | |||
| # Write a message for tag: | |||
| #   rc2.0 | |||
| # Lines starting with '#' will be ignored. | |||
| D:\git\eijux>git tag rc3.0 ffa1 | |||
| D:\git\eijux>git log --decorate | |||
| commit 5e26159ad738b08b9321eba9ecaeff39c8acc42f (HEAD -> master, tag: rc2.0, tag: rc1.0, eijux/master) | |||
| Author: Eijux <chen@eijux.com> | |||
| Date:   Fri Nov 1 01:18:47 2019 +0800 | |||
|     idea commit test 01<E7><82><B9>18<E5><88><86> | |||
| commit ffa14211ab7088d9782de019328238dcfe09a4bc (tag: rc3.0) | |||
| Merge: 3fbc79a fc32a4a | |||
| Author: Eijux <chen@eijux.com> | |||
| Date:   Thu Oct 31 16:03:24 2019 +0800 | |||
|     Merge branch 'master' of github.com:Eijux/eijux | |||
| D:\git\eijux>git show rc3.0 | |||
| commit ffa14211ab7088d9782de019328238dcfe09a4bc (tag: rc3.0) | |||
| Merge: 3fbc79a fc32a4a | |||
| Author: Eijux <chen@eijux.com> | |||
| Date:   Thu Oct 31 16:03:24 2019 +0800 | |||
|     Merge branch 'master' of github.com:Eijux/eijux | |||
| D:\git\eijux> | |||
| </syntaxhighlight> | |||
| |} | |||
2020年9月19日 (六) 01:47的版本
仓库
| 命令 | 说明 | 
|---|---|
| git init | 在当前目录初始化Git仓库 | 
| git init <newrepo> | 在指定目录( <newrepo>)初始化Git仓库 | 
| git clone <repo> | 从现有Git仓库( <repo>)中拷贝项目到当前目录 | 
| git clone <repo> <directory> | 从现有Git仓库( <repo>)中拷贝项目到指定目录(<directory>) | 
- git clone可以所用不同的协议,包括- ssh,- git,- https等:- git clone git@github.com:fsliurujie/test.git:SSH协议
- git clone git://github.com/fsliurujie/test.git:GIT协议
- git clone https://github.com/fsliurujie/test.git:HTTPS协议
 - (常用ssh,因为速度较快,还可以配置公钥免输入密码)
 
修改
| 命令 | 说明 | 备注 | 
|---|---|---|
| git add | 将工作区新增或修改的文件添加到暂存区 | 
 | 
| git commit | 提交暂存区到本地仓库 | 
 | 
| git status | 查看仓库当前的状态,显示有变更的文件 | Microsoft Windows [版本 10.0.19041.508]
(c) 2019 Microsoft Corporation。保留所有权利。
D:\git\eijux>git status
On branch master
Your branch is up to date with 'eijux/master'.
Changed not staged for commit:
  (use "git add <file>..." to include in what will be committed)
  (use "git restore --staged <file>..." to unstage)
        new file:   1.txt
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   2.txt
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        3.txt
 | 
| git diff | 比较文件的不同,即暂存区和工作区的差异 | 
 | 
| git reset | 回退版本 | 
 
 关于[HEAD]: 
 | 
| git mv | 移动或重命名工作区文件 | 
 | 
| git rm | 删除工作区文件 | 
 | 
分支
远程
| 命令 | 说明 | 备注 | 
|---|---|---|
| git remote | 操作远程仓库 | 
 | 
| 
 | 从远程获取代码库: | Note: 
 拉取远程分支,并合并到本地分支,如: 
 | 
| git pull | 从远程获取代码并合并本地的版本: | Note: 
 如: 
 | 
| git push | 从将本地的分支版本上传到远程并合并: | 
 | 
日志
| 命令 | 说明 | 示例 | 
|---|---|---|
| git log | 查看版本提交历史 | Microsoft Windows [版本 10.0.19041.508]
(c) 2019 Microsoft Corporation。保留所有权利。
D:\git\eijux>git log
commit 5e26159ad738b08b9321eba9ecaeff39c8acc42f (HEAD -> master, eijux/master)
Author: Eijux <chen@eijux.com>
Date:   Fri Nov 1 01:18:47 2019 +0800
    idea commit test 01<E7><82><B9>18<E5><88><86>
commit ffa14211ab7088d9782de019328238dcfe09a4bc
Merge: 3fbc79a fc32a4a
Author: Eijux <chen@eijux.com>
Date:   Thu Oct 31 16:03:24 2019 +0800
    Merge branch 'master' of github.com:Eijux/eijux
commit 3fbc79ae2c8b7199c22133d1f3e4115848dbe749
Author: Eijux <chen@eijux.com>
Date:   Thu Oct 31 04:19:09 2019 +0800
    idea commit test
(END)
 | 
| git reflog | 查看版本命令历史 | Microsoft Windows [版本 10.0.19041.508]
(c) 2019 Microsoft Corporation。保留所有权利。
D:\git\eijux>git reflog
5e26159 (HEAD -> master, eijux/master) HEAD@{0}: pull eijux master: Fast-forward
fc32a4a HEAD@{1}: commit: add gitignore file
d07be0a HEAD@{2}: commit: branch management test
492be10 HEAD@{3}: merge dev: Merge made by the 'recursive' strategy.
fc1038b HEAD@{4}: checkout: moving from dev to master
9d0f76e (dev) HEAD@{5}: commit: write a line on branch dev
7640602 (eijux/dev) HEAD@{6}: checkout: moving from master to dev
fc1038b HEAD@{7}: reset: moving to HEAD
fc1038b HEAD@{8}: commit: branch back to master
7640602 (eijux/dev) HEAD@{9}: merge dev: Fast-forward
63fa5ac HEAD@{10}: checkout: moving from dev to master
7640602 (eijux/dev) HEAD@{11}: commit: add dev branch
63fa5ac HEAD@{12}: checkout: moving from master to dev
63fa5ac HEAD@{13}: pull eijux master --allow-unrelated-histories: Merge made by the 'recursive' strategy.
da60d32 HEAD@{14}: commit: add t5.txt
e88cb69 HEAD@{15}: commit: delete rmtest.txt
cc1e40c HEAD@{16}: commit: changed t4 and add t5
1707196 HEAD@{17}: commit: changed t4
378fb5a HEAD@{18}: commit: add t4.txt
e3501ab HEAD@{19}: commit: add t4
ea463d0 HEAD@{20}: commit: add t2.txt
92ad079 HEAD@{21}: commit: git commit single file test
061529e HEAD@{22}: reset: moving to 061529
69e722f HEAD@{23}: reset: moving to head
69e722f HEAD@{24}: reset: moving to head^
061529e HEAD@{25}: reset: moving to 061529
69e722f HEAD@{26}: reset: moving to 69e722
061529e HEAD@{27}: commit: git diff test
69e722f HEAD@{28}: commit: banben test
fd1fd5f HEAD@{29}: commit (initial): git add test
 | 
标签
tag实际就是一个指向commit的指针,将一个有意义的tag名称与commit相关联。
git标签有两种类型:
- 轻量级的(lightweight):实际上它就是个指向特定提交对象的引用。
- 含附注的(annotated):实际上是存储在仓库中的一个独立对象,有自身的校验和信息,包含标签名称,电子邮件地址和日期,及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证。 
| 命令 | 说明 | 备注 | 
|---|---|---|
| git tag | git标签 | Note: 
 如: Microsoft Windows [版本 10.0.19041.508]
(c) 2019 Microsoft Corporation。保留所有权利。
D:\git\eijux>git tag
D:\git\eijux>git tag rc1.0
D:\git\eijux>git tag -a rc2.0
# Write a message for tag:
#   rc2.0
# Lines starting with '#' will be ignored.
D:\git\eijux>git tag rc3.0 ffa1
D:\git\eijux>git log --decorate
commit 5e26159ad738b08b9321eba9ecaeff39c8acc42f (HEAD -> master, tag: rc2.0, tag: rc1.0, eijux/master)
Author: Eijux <chen@eijux.com>
Date:   Fri Nov 1 01:18:47 2019 +0800
    idea commit test 01<E7><82><B9>18<E5><88><86>
commit ffa14211ab7088d9782de019328238dcfe09a4bc (tag: rc3.0)
Merge: 3fbc79a fc32a4a
Author: Eijux <chen@eijux.com>
Date:   Thu Oct 31 16:03:24 2019 +0800
    Merge branch 'master' of github.com:Eijux/eijux
D:\git\eijux>git show rc3.0
commit ffa14211ab7088d9782de019328238dcfe09a4bc (tag: rc3.0)
Merge: 3fbc79a fc32a4a
Author: Eijux <chen@eijux.com>
Date:   Thu Oct 31 16:03:24 2019 +0800
    Merge branch 'master' of github.com:Eijux/eijux
D:\git\eijux>
 |