“Git:基本操作”的版本间差异

来自Wikioe
跳到导航 跳到搜索
无编辑摘要
第111行: 第111行:


== 分支==
== 分支==


== 远程 ==
== 远程 ==


== 日志 ==
== 日志 ==
第188行: 第190行:
</syntaxhighlight>
</syntaxhighlight>
|}
|}
== 标签 ==

2020年9月18日 (五) 13:21的版本


仓库

命令 说明
git init 在当前目录初始化Git仓库
git init <newrepo> 在指定目录(<newrepo>)初始化Git仓库
git clone <repo> 从现有Git仓库(<repo>)中拷贝项目到当前目录
git clone <repo> <directory> 从现有Git仓库(<repo>)中拷贝项目到指定目录(<directory>

修改

命令 说明 备注
git add 将工作区新增或修改的文件添加到暂存区
  1. 添加一个或多个文件到暂存区:git add [file1] [file2]
  2. 添加指定目录到暂存区(包括子目录):git add [dir]
  3. 添加当前目录下的所有文件到暂存区:git add .
git commit 提交暂存区到本地仓库
  1. 提交暂存区到本地仓库:git commit -m [message]
  2. 提交暂存区的指定文件:git commit [file1] [file2] -m [message]
  3. -a参数设置直接提交(跳过git add):git commit ([file1] [file2]) -am [message]
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
  1. Changed not staged for commit:修改文件,未add
  2. Changes to be committed:修改并add,未commit
  3. Untracked files:新增文件,从未add
git diff 比较文件的不同,即暂存区和工作区的差异
  1. 查看尚未缓存(未add)的改动:git diff ([file])
  2. 查看已缓存(已add)的改动: git diff --cached ([file])(或git diff --staged ([file])
  3. 查看已缓存与未缓存所有改动:git diff HEAD
  4. 显示摘要而非整个diff:git diff --stat
  5. 查看两次提交之间的差异:git diff [first-branch]...[second-branch]
git reset 回退版本

git reset [--soft | --mixed | --hard] [HEAD]
关于参数:

  1. --mixed:(默认)重置缓存区未指定commit(工作区不变)
  2. --soft:将HEAD指向指定commit(工作区与缓存区不变)
  3. --hard:重置工作区、缓存区未指定commit

关于[HEAD]:

  1. 当前版本:HEAD^HEAD~0
  2. 上一个版本:HEAD^HEAD~1
  3. 上上一个版本:HEAD^^HEAD^2
  4. 上上上一个版本:HEAD^^^HEAD^3
    以此类推
git mv 移动或重命名工作区文件
  1. -f强制执行:git mv -f [file] [newfile]
git rm 删除工作区文件
  1. 将文件从暂存区和工作区中删除:git rm <file>
  2. 将文件从暂存删除(工作区保留):git rm --cached <file>
  3. -r递归删除:git rm -r *
  4. -f强制删除:git rm -f <file>

分支

远程

日志

命令 说明 示例
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

标签