Git 仓库内容操作

慈云数据 7个月前 (04-23) 技术支持 99 0

Git 仓库内容操作 | CoderMast编程桅杆Git 仓库内容操作 添加文件到暂存区 使用如下指令将工作区的文件添加到暂存区,告诉 Git 在下次 commit 时哪些文件做出了修改。 commit 指令详看后续 添加一个或多个文件到暂存区: 添加指定目录到暂存区 添加当前目录下的所有文件到暂存区 查看仓库状态 在使用添加指令向暂存区添加文件后,可以使用如下指令来查看仓库当前状态,可以查看在上次提...icon-default.png?t=N7T8https://www.codermast.com/dev-tools/git/git-content-operations.html

添加文件到暂存区

使用如下指令将工作区的文件添加到暂存区,告诉 Git 在下次 commit 时哪些文件做出了修改。

commit 指令详看后续

  • 添加一个或多个文件到暂存区:
    git add [file1] [file2] ...
    
    • 添加指定目录到暂存区
      git add [dir]
      
      • 添加当前目录下的所有文件到暂存区
        git add .
        

        查看仓库状态

        在使用添加指令向暂存区添加文件后,可以使用如下指令来查看仓库当前状态,可以查看在上次提交之后是否对文件有修改。

        git status
        

        命令显示如下信息:

        • 当前分支的名称。
        • 当前分支与远程分支的关系(例如,是否是最新的)。
        • 未暂存的修改:显示已修改但尚未使用 git add 添加到暂存区的文件列表。
        • 未跟踪的文件:显示尚未纳入版本控制的新文件列表。

          根据该指令通常可以判断当前工作目录中的文件状态,并采取适当的操作。

          可以加上 -s 参数来获取简短的输出信息

          git status -s
          

          比较文件的不同

          当工作区的内容提交到暂存区后,对工作区文件做出了修改,这时我们如果想对比具体修改了哪些部分,可以使用如下指令

          • 查看文件 file 工作区和暂存区的差别
            git diff [file]
            
            • 显示暂存区和上一次提交 commit 的差别
              # 两种写法均可
              git diff --cached [file]
              git diff --staged [file]
              
              • 显示两次提交之间的差异
                git diff [first-branch]...[second-branch]
                

                提交暂存区到本地仓库

                前面使用 git add 指令将工作区文件添加到暂存区,但并没有实质的将文件添加到本地仓库,可以使用如下指令将文件从暂存区添加到本地仓库。

                • 提交暂存区中所有文件到本地仓库
                  git commit -m [message]
                  

                  其中 message 是本次提交的一些备注信息。

                  • 提交暂存区的指定文件到本地仓库
                    git commit [file1] [file2] ... -m [-a] [message] 
                    

                    这里如果使用了 -a 参数,就代表直接将工作区文件提交到本地仓库。

                    回退版本

                    常常在项目版本控制的过程中,我们无意的提交了一些还尚未完成的版本,这时就需要使用到版本回退,使用如下指令可以指定退回某一次提交的版本,语法如下所示

                    git reset [--soft | --mixed | --hard] [HEAD]
                    
                    • --mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
                      `git reset [HEAD]`
                      
                      • --soft 参数用于回退到某个版本:
                        git reset --soft HEAD
                        
                        • --hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
                          git reset --hard HEAD
                          

                          警告

                          谨慎使用 –-hard 参数,它会删除回退点之前的所有信息。

                          HEAD 说明

                          • HEAD 表示当前版本

                          • HEAD^ 上一个版本

                          • HEAD^^ 上上一个版本

                          • HEAD^^^ 上上上一个版本

                          • HEAD~0 表示当前版本

                          • HEAD~1 上一个版本

                          • HEAD^2 上上一个版本

                          • HEAD^3 上上上一个版本

                            删除暂存区和工作区文件

                            git rm 命令用于删除文件

                            如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。

                            • 将文件从暂存区和工作区中删除
                              git rm [-f] 
                              

                              如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。

                              • 仅将文件从暂存区删除,而保留工作区
                                git rm --cached 
                                

                                该指令把文件从暂存区域移除,但仍然保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可

                                • 递归删除【与Linux中类似】

                                  可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件

                                  git rm –r [dir]
                                  

                                  该语句会删除 dir 目录下的所有文件和子目录。

                                  移动或重命名工作区文件

                                  • 移动或重命名一个文件、目录或软连接
                                    git mv [file] [newfile] 
                                    
                                    • 如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数:
                                      git mv -f [file] [newfile]
                                      

                                      恢复或撤销文件的更改

                                      该命令作用包括还原文件到最新提交的状态、丢弃未暂存的更改、丢弃已暂存但未提交的更改等。

                                      • 还原文件到最新提交的状态
                                        git restore 
                                        

                                        该命令可以将指定文件 恢复到最新的提交状态,丢弃所有未提交的更改

                                        • 还原文件到暂存区的状态

                                          如果你已经使用 git add 将文件添加到暂存区,但希望撤销这些更改,可以使用这个命令:

                                          git restore --staged 
                                          

                                          以上命令将文件 恢复到暂存区的状态,但不影响工作目录中的文件。

                                          • 还原全部更改

                                            以下命令将还原所有未提交的更改,包括工作目录和暂存区的更改:

                                            git restore .
                                            

                                            使用这个命令要谨慎,因为它会清除所有未提交的修改。

                                            • 还原文件到指定提交的状态

                                              如果你想将文件 恢复到特定提交 的状态,可以使用以下命令:

                                              git restore --source= 
                                              

                                              这个命令在需要查看历史状态或将文件还原到历史版本时非常有用。

                                              • 交互式还原

                                                以下命令允许你以交互方式选择要还原或保留的更改:

                                                git restore -i
                                                

                                                执行这个命令它会打开一个交互式界面,让你选择如何处理每个更改。

                                                git restore 的目标是提供一种更直观、易于理解的方式来管理文件的状态,它的引入使得 Git 用户能够更容易地处理不同阶段的更改,从而提高了工作流的效率。

                                                注意

                                                git restore 是 Git 2.23 版本引入的一个命令,如果你使用的是较早版本的 Git,可能无法使用 git restore 命令,但你仍然可以使用 git checkout 等命令来进行类似的操作。

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon