Git基本命令 -- 基本工作流程 + 文件相关操作

简介: 可以先找一个已经被git管理的项目, 我就使用这个项目吧: https://github.com/solenovex/ID3-Editor 基本工作流程 克隆以后呢, 进入该目录查看一下状态: 然后添加一个文件叫 z0.

可以先找一个已经被git管理的项目, 我就使用这个项目吧: https://github.com/solenovex/ID3-Editor

基本工作流程

克隆以后呢, 进入该目录查看一下状态:

然后添加一个文件叫 z0.txt, 然后添加点文字:

然后再查看状态:

随后我使用git add z0.txt让这个文件被git追踪, 然后再查看状态:

这时git告诉我有变化需要被commit.

这时文件是在staging 区里面:

这时执行git commit, 输入信息之后, 就会回到命令行:

master后边那一串字符串就是这次commit的id.

这时再查看状态:

我的分支领先于origin/master一个commit.

commit之后会, 所有在staging区的文件都会被commit的:

如果这时执行git push命令, 那么就会把本地的新commit推送到远程仓库(remote repository).

不过我这里先要执行一下git pull命令:.git pull origin master.

这句话就是把有可能发生在远程仓库的变化拉取到本地的仓库, 就是为了保证我本地的代码是最新的.

命令执行后告诉我, 这个是最新的.

最后执行git push origin master:

这个命令将会把本地所有的commit推送到远程的仓库, 也就是origin这个名的仓库的master分支上.

这时有可能要求你输入用户名和密码.

这里也显示了包含了哪些commit.

这时在远程仓库就可以看到这个文件了.

 

文件相关操作.

追踪文件.

修改一下z0.txt的内容, 然后查看状态:

这时呢, 我想直接commit这个文件, 也就是把add和commit过程合并成一步:

git commit -am "xxxx"

git commit -a的作用就是把所有的变化添加到了staging 区, 然后直接就commit了.

这个命令只针对被追踪的文件起作用, 那么什么是被追踪的(tracked)文件呢?

就是git所知道要追踪的文件.....就是已经被commit到repository或者被add到index/staging区的文件.

想知道文件是否被追踪了, 就需要使用这个命令:

git ls-files 

这个命令会列出当前repository所追踪的所有文件.

 

编辑文件.

编辑一个z0.txt, 并且添加一个z1.txt并写点内容, 查看状态:

可以看到这两个文件分别处于不同的状态.

z0是等待被commit, z1则是还没有被添加到staging 区.

如果现在执行git commit命令, 那么它只会对z0起作用.

而这时这个新文件的状态不变:

这时把这个文件添加到staging 区:

然后我再改一下这个文件的内容, 然后再查看一下状态:

尽管是同一个文件, git还是把每次变化分开来追踪的: 已经在staging区的和不在staging区的.

这时再用git add把该文件的变化添加到staging 区:

然后git commit:

 

递归添加文件.

创建多级文件夹:

然后分别在这几个目录内建立文件并写上点内容. 查看状态:

这里只能看到根目录的一个文件夹有变化, 并不能递归的看到所有的文件变化.

但我可以使用git add .这个命令来递归的添加文件变化.

然后commit:

可以看到这几个文件都被添加到git repository里面了.

 

退回变化.

没有变化的时候, 状态应该是这样的:

然后修改一个文件并执行git add, 查看状态:

如果不想要这个变化了, 想把这个变化退出staging区,或者叫unstage:

就可以按照图示的命令执行 git reset HEAD z0.txt.

然后该变化就是这个状态了:

但是文件的内容还是我修改过的内容.

如果我不想要这个文件有任何变化, 也就是想让这个文件退回到上次commit的内容, 那么执行:

上面那个命令图已经告诉我怎么做了 git checkout -- z0.txt:

文件的内容也恢复到原来了.

 

文件更名/移动.

使用git mv 源文件名 新文件名 来为文件改名.

查看状态:

git已经把该变化添加到了staging区.

然后 commit即可.

最好的实践就是在修改文件内容之前改文件名, 这样git更方便追踪该文件.

如果使用系统的命令去改文件名:

那么git认为这是两个动作: 删除了老文件, 添加个新文件.

使用git add -A 这个命令, 它会递归的添加变化, 也会更新改名,移动, 删除的文件.

这时git就会认为我是把文件改名了.

然后commit即可.

 

现在再改一个文件名:

如果我不想改名了, 想该回去, 那么 还是使用git mv即可, 不过参数是相反的:

就相当于未发生任何变化.

 

下面我要移动文件到另一个文件夹.

使用git mv移动一个文件, 然后看状态:

然后commit即可.

下面直接使用系统的mv命令把该文件移动回去.

git会把它当成两个动作.

还是同样使用git add -A:

同样git就会认为这是一个改名/更换目录的动作了.

然后commit即可.

 

然后我用系统的文件浏览器去改文件名.

把z2改成z1:

同样, git 认为这是两个动作:

然后git add该文件, 使用git add -u 更新index:

 

删除文件.

创建一个新文件, 然后使用 git rm删除该文件, 这是会报错的:

所以应该使用系统的命令/操作去删除该文件.

就相当于完全没有变化.

 

然后我要删除git追踪的文件z1.txt, 就应该使用git rm z1.txt 命令:

现在文件没了, 但是还不是最终的结果, 还需要commit.

 

再删除一个追踪的文件z00.txt.

现在不想删了, 使用git reset HEAD z00.txt 这里必须包括精确的文件名.

执行该命令后, 该文件依然没有出现.

看下状态:

这个文件目前被追踪了, 但是并不在working directory里面.

所以之前的git reset只是unstage了这个删除动作, 并没有恢复文件.

所以我需要把working directory里所有的变化都恢复, 就要使用git checkout命令.

 

但是如果使用系统/命令删除一个追踪的文件会怎样呢?

我用系统去删除z00这个文件.

可以看到git认为该文件在working directory里面找不到了, 这时我可以 使用git add -A, 它将添加并更新working directory里面的变化包括改名和删除.

这时这个变化就被加到了staging区, 然后commit即可.

 

下面从系统中删除d1文件夹.

git 认为该目录下的文件都找不到了, 然后就应该使用git add -A:

然后stage, 然后commit即可.

 

 

再总结一下git add命令常用的几个参数:

git add -A / git add --all: stage所有的变化

git add .: 把新建/修改的内容添加到staging区, 不包括删除.

git add -u: 把修改和删除的内容添加到staging区, 不包括新增的.

 

今天的命令包括git pull, git push, git commit -am, git ls-files, git add的各种参数, git reset HEAD, git checkout, git mv, git rm, 

下面是我的关于ASP.NET Core Web API相关技术的公众号--草根专栏:

vNext
+关注
目录
打赏
0
0
0
0
20
分享
相关文章
怎么取消对project.private.config.json这个文件的git记录
通过以上步骤,您可以成功取消对 `project.private.config.json`文件的Git记录。这样,文件将不会被包含在未来的提交中,同时仍保留在您的工作区中。
61 28
git 常用命令
这些只是 Git 命令的一部分,Git 还有许多其他命令和选项,可根据具体需求进行深入学习和使用。熟练掌握这些命令能够帮助你更高效地管理代码版本和协作开发。
Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合
通过本文,读者可以深入了解Git的核心概念和实际操作技巧,提升版本管理能力。
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
45 0
【Git】Git 命令参考手册
Git 命令参考手册的扩展部分,包含了从基础操作到高级功能的全面讲解。
90 3
|
4月前
|
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
79 1
[Git]入门及其常用命令
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
180 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
git学习三:git使用:删除仓库,删除仓库内文件
通过GitHub的设置页面删除仓库,以及如何使用Git命令行删除仓库中的文件或文件夹。
255 1
git学习三:git使用:删除仓库,删除仓库内文件
git上面中新建gitignore文件,并且去除已经在仓库版本管理中的文件夹
git上面中新建gitignore文件,并且去除已经在仓库版本管理中的文件夹
147 4
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等