git命令

原创:http://blog.sina.com.cn/u/2312748742 在此特别感谢小布老师的帮助。

1)git config --global user.name /user.email +用户名/email

2)git init 初始化git,新建仓库。

3)git log 查看日记。git log -p,详细日记。

4)git status 查看状态

5)git add . 要提交的文件。 .为这个文件夹

6)git commit 真正把要提交的文件保存到仓库中。

  前面两个命令可以用 git commit -a -m"信息"

7)git branch 创建分支

8)git checkout experiment 切换分支 。接下去在这个分支工作。。。。。。

9)提交分支工作,并且切回到主干。

10)git merge experment 合并分支到主干。

11)git branch -d experiment 删除分支。

12)git ls-files --deleted 查看删除的文件

13)git checkout test/ 恢复文件

14)git diff 比较差异

15)git revert恢复到之前的索引。

 例子:

16)当git add .后又不想放到缓存了。想撤出怎么办:

使用git reset HEAD<那个文件名>  。可以用giestatus查看。

17)当改了一些文件后想返回怎么办,输入  git status可以看到有改过的文件会出现Changed but not updated ,此时如果你不想改了,可以gitcheckout --<file> ,返回。此命令是把原来的版本覆盖过来。

 

18)当git commit -m "信息" ,当不要了这个怎么办,使用 git rest --soft HEAD^此命令会把git log里的记录返回到之前的,也可以用git commit -a -c ORIG_HEAD 重新再定义信息。

git原理分析:

.git仓库里其实有branches/config/description/HEAD/hooks/info/objects/refs

1)git采用有改变就保存起来,没有采用什么修改算法等。

2)git可以用--globle保存全局的个人消息。也可以用 .git/config 里的局部消息

3)有三个地方,一、git init后有一个.git这个就是Repository放保存的仓库。

4)二、working directory 工作区

5)三、staging area/index缓存区。

6)上面三个顺序,二 -> 三 ->一  ,其中 二到三 用git add 三到一 用gitcommint  。如果也可以用 git commint -a 来让git 自己执行 二到三

7)从仓库里取出来恢复文件 用 git checkout -f HEAD , 只要.git这个仓库不丢失,其它工作区的文件无所谓。

8)git其实有三个对象,这个是git的核心。 first :blob,这个是叶子,真正的文件。second :tree,树,其实这个就是目录,它指向了blob,third:commit,这个是历史记录的。没commit一次,就有一个,它指向tree.

9)git hash-object <file>,这个是HSA1值,哈希值,它代表file。

10)find .git/objects/ -type f 列出普通文件

11)git show <哈希值> 。可以显示文件内容。

12)git cat-file -t <哈希值>。显示文件时tree还是 blob 或者 commit.

13)tree 对象。有 blob/tree 。 gitls-tree <哈希值>

14)git保存的原理它内容和文件名是分离的,如果内存相同而文件名不一样,则它只保存一份内容。文件名称由tree保存。

15)commint对象: 里面有tree/parent/auther/commiter 用git show -s -pretty =raw <哈希值>

16)blob对象。正真的文件。压缩成哈希值作文件名称。

17)tag对象也可以称另一个对象。它是标签。用在 commit -m “标签” 。

18)References 引用、有 HEAD,branches .romote brach

19) 打入标签; git tag V1.00.00.01 或者创建标签对象 。 gittag -a <标签名> -m "描述信息"

20)查看标签: ls .git/refs/tags/

21)提取之前的版本。

  cat.git/HEAD           看他的头指向哪里

  cat.git/resf/heads/master   

  cat .git/refs/tags/

  提取对应的版本并压缩:

  git archive --format=tar--prefix=/<gitspace存放文件夹> V1.0(标签) |gzip   >/workspace/kylin/v1.0.tar.gz

22)用 git checkout v1.0 ./   其实同上,它是先去找.git/refs/tags/v1.0 找到这个记录的希哈值。通过这个希哈值找了tag标签,标签就指向了commit ,commit指向了tree,tree指向了blob,因此就都找到了。

23)合并冲突后应手动去更改,然后再主分支上commit一次即可。

24)合并后要删除分支:git branch -D testing

25)有些不想放到仓库里应该用 .gitignore 文件,然后把不想放仓库的文件名写到.gitignore里面

26)git diff --staged 或者git diff 比较workspace VS staged

27) git diff --cached: 比较 staged VS local reperety

28)删除git rm <文件名>

29) git reset --head <commit 名>恢复到哪个版本 缓冲区,工作区,heard都没了。还原到原来的版本

   ①替换引用的指向。引用指向新的提交ID。

   ②替换暂存区。替换后,暂存区的内容和引用指向的目录树一致。

   ③替换工作区。替换后,工作区的内容变得和暂存区一致,也和HEAD所指向的目录树内容相同。

30)git reset 表示撤销缓存区。 (默认为--mixed),更改引用的指向及重置暂存区,但是不改变工作区

31) git reset --soft <commit名>  只更改引用的指向,不改变暂存区和工作区.

32) git 不同节点的某一个文件的比较: git diff   26665422dd22  s225df5585x222   --   aa.c
<think>好的,我现在需要帮助用户了解Git命令的使用教程和常见命令列表。首先,用户提到想学习Git命令的用法,可能需要基础命令的介绍和一些实际例子。根据用户提供的引用内容,我应该优先包含git config、git add、git commit、git push这些基本命令,因为这些在引用中都有提到。特别是引用1详细介绍了git config和git add的使用,引用3提到了git push的简化操作。 接下来,我需要确保结构清晰,按照用户的要求分步骤讲解。可能的结构是:安装配置、基本工作流程、分支管理、远程仓库操作、其他常用命令。每个部分下给出具体的命令和示例,比如在配置部分,引用1和引用2都提到了git config的使用,包括设置用户名、邮箱和查看配置列表,这些都需要包含进去。 另外,用户示例中的Python代码块提醒我需要用代码块格式展示Git命令,但注意用户的问题是关于Git的,所以应该用命令行代码块,如```bash。同时,需要检查LaTeX格式是否正确,不过这个问题中可能用到的数学公式不多,但如果有的话,比如在解释某些概念时,可能需要使用行内公式,比如$ git add $这样的变量?不过Git命令本身不需要数学公式,所以可能不用,但需要留意系统指令中的要求。 用户还要求生成相关问题,我需要根据内容提出相关问题,比如如何撤销提交、分支管理策略等,这些是用户可能进一步想了解的。 需要确保引用的正确使用,每个引用对应的内容要准确。例如,引用1提到git add .,引用3提到git push -u origin master,这些都要在相应部分标注引用标识。同时,用户提供的引用中没有提到git commit、git status等命令,但这些属于常见命令,可能需要补充,但因为没有引用来源,可能需要避免引用标记,或者如果用户提供的引用中确实没有,可能需要不标注引用,但根据用户给出的引用,只能使用现有的三个引用。 不过,用户提供的引用中,引用1提到了git config和git add,引用2是git config --list,引用3是git push。所以当提到这些特定命令时,添加对应的引用标记,其他命令git commit、git status可能没有引用来源,就不添加引用标识。 最后,生成的相关问题应该围绕Git的进一步学习,比如配置管理、撤销操作、分支合并冲突解决、.gitignore文件使用等,这些都是用户可能感兴趣的点。 现在开始组织内容: 1. 安装与配置:根据引用1和2,介绍git config设置用户信息,查看配置。 2. 基本工作流程:git init, git add(引用1), git commit, git status, git log。 3. 分支管理:git branch, git checkout, git merge。 4. 远程仓库:git remote add, git push(引用3), git pull。 5. 其他命令git clone, .gitignore, git reset(可能没有引用来源,但常见)。 在写作时,确保每个命令的示例正确,比如git add . 来自引用1,要标注[^1]。git config --list来自引用2,标注[^2]。git push -u来自引用3,标注[^3]。 可能还需要检查是否有其他命令在引用中提到,但根据提供的三个引用,主要涉及config、add、push。因此,其他命令可能没有引用来源,但用户的问题需要常见命令列表,所以必须包含,但引用标记只用在对应的部分。 最后生成相关问题,如如何撤销提交、解决合并冲突、配置忽略文件等。</think>### Git 常用命令使用教程 Git 是分布式版本控制系统,以下是基础命令和常见用法: --- #### 一、安装与配置 1. **配置用户信息**(提交时标识身份) ```bash git config --global user.name "你的用户名" git config --global user.email "你的邮箱" ``` 此配置会保存在全局文件(如 `~/.gitconfig`)。 2. **查看当前配置** ```bash git config --list ``` 可检查所有生效的配置项。 --- #### 二、基本工作流程 1. **初始化仓库** ```bash git init ``` 2. **添加文件到暂存区** ```bash git add <文件名> # 添加单个文件 git add . # 添加所有修改和新文件 ``` 3. **提交更改** ```bash git commit -m "提交说明" ``` 4. **查看状态与日志** ```bash git status # 查看工作区和暂存区状态 git log # 查看提交历史 ``` --- #### 三、分支管理 1. **创建与切换分支** ```bash git branch <分支名> # 创建分支 git checkout <分支名> # 切换分支 git checkout -b <分支名> # 创建并切换 ``` 2. **合并分支** ```bash git merge <目标分支> ``` --- #### 四、远程仓库操作 1. **关联远程仓库** ```bash git remote add origin <仓库URL> ``` 2. **推送代码** ```bash git push -u origin master # 首次推送需指定分支[^3] git push # 后续推送可简化 ``` 3. **拉取更新** ```bash git pull origin master ``` --- #### 五、其他常用命令 | 命令 | 用途 | |------|------| | `git clone <仓库URL>` | 克隆远程仓库到本地 | | `git reset <文件>` | 撤销暂存区的修改 | | `git diff` | 查看文件差异 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值