https://www.yiibai.com/git/getting-started-git-basics.html

4165335-f0b8de7badb2030d.png
图片.png

git文件管理

工作目录
staging area 暂存区
本地仓库
远程仓库

请注意!如果你希望后面的学习更顺利,记住下面这些关于 Git 的概念。 Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/git/getting-started-git-basics.html

基本的 Git 工作流程如下:

在工作目录中修改文件。暂存文件,将文件的快照放入暂存区域。提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/git/getting-started-git-basics.html

add - 暂存文件
commit - 将暂存文件放到本地仓库
push - 提交到远程仓库

git取消追踪本地文件

从本地仓库中移除;
从暂存区中移除;

另外一种情况是,我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。 换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。 当你忘记添加 .gitignore 文件,不小心把一个很大的日志文件或一堆 .a 这样的编译生成文件添加到暂存区时,这一做法尤其有用。 为达到这一目的,使用 --cached 选项:

$ git rm --cached mytext.txt
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    mytext.txt//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/git/git-quick-start.html

删除指定文件(取消追踪指定文件) git rm -f --cached mytext.txt

myrepo0925 benjamin$ git rm --cached mytext.txt
rm 'mytext.txt'
myrepo0925 benjamin$ 
myrepo0925 benjamin$ 
myrepo0925 benjamin$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    deleted:    mytext.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    mytext.txt

myrepo0925 benjamin$ 

取消追踪指定文件夹下所有的文件 git rm -fr --cached mydir/


myrepo0925 benjamin$ mkdir  mydir
myrepo0925 benjamin$ 
myrepo0925 benjamin$ touch mydir/a.java
myrepo0925 benjamin$ 
myrepo0925 benjamin$ touch mydir/b.java
myrepo0925 benjamin$ 
myrepo0925 benjamin$ 
myrepo0925 benjamin$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    deleted:    mytext.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    mydir/
    mytext.txt

myrepo0925 benjamin$ 
myrepo0925 benjamin$ 
myrepo0925 benjamin$ 
myrepo0925 benjamin$ git add mydir/
myrepo0925 benjamin$ 
myrepo0925 benjamin$ 
myrepo0925 benjamin$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   mydir/a.java
    new file:   mydir/b.java
    deleted:    mytext.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    mytext.txt


myrepo0925 benjamin$ 
myrepo0925 benjamin$ git rm -r  --cached mydir/
rm 'mydir/a.java'
rm 'mydir/b.java'

myrepo0925 benjamin$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    deleted:    mytext.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    mydir/
    mytext.txt


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐