新建文件
要添加新文件,可以在工作目录直接创建文件,我们创建了一个test1.txt
,查看一下工作目录中的文件:
Kevin@qikegu MINGW64 /g/project/git-demo (master)
$ ls -al
total 10
drwxr-xr-x 1 Kevin 197121 0 8月 19 11:03 ./
drwxr-xr-x 1 Kevin 197121 0 8月 18 12:22 ../
drwxr-xr-x 1 Kevin 197121 0 8月 18 17:59 .git/
-rw-r--r-- 1 Kevin 197121 10 8月 18 12:22 README.md
-rw-r--r-- 1 Kevin 197121 9 8月 19 11:04 test1.txt
此处使用的命令行是
git Bash
,文件管理器切换到项目目录,右键菜单->执行git Bash here
使用 git status 查看状态
工作目录中有2种文件:
- git已跟踪文件
- git未跟踪文件
要查看工作目录中文件的跟踪状态,可以运行git status
:
Kevin@qikegu MINGW64 /g/project/git-demo (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
test1.txt
nothing added to commit but untracked files present (use "git add" to track)
git status
会告诉你当前分支是什么,本地仓库是否与远程仓库不同,以及已跟踪和未跟踪文件的状态。
可以看到,test1.txt
未跟踪,命令建议使用git add <file>...
把新文件添加到暂存区。
使用 git add 把文件添加到暂存区
提交(commit)往往意味着一个有意义的修改,比如修复了一个bug。但有时修复一个bug,要修改很多文件,在工作过程中,你想让这些中间过程中的修改也有跟踪,这就是暂存区的作用,任何小修改都可以放进暂存区。
如下图所示,当你按照建议执行git add test1.txt
,文件test1.txt
会被添加到暂存区,暂存区可以收集要提交到本地仓库的所有更改:
执行git add test1.txt
命令把文件添加到暂存区,然后使用git status
检查文件状态:
Kevin@qikegu MINGW64 /g/project/git-demo (master)
$ git add test1.txt
Kevin@qikegu MINGW64 /g/project/git-demo (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: test1.txt
可以看到test1.txt
已经不是未跟踪状态了。
使用 git commit 提交暂存区中内容
提交(commit)意味着一个有意义的修改,所以提交时会要求输入本次提交的描述信息。当你觉得暂存区中的更改可以提交了(现在只添加了test1.txt
),可以使用git commit
命令提交到本地仓库。如下图所示:
执行git commit
命令,提交暂存区中的内容。执行命令时,将打开一个文本编辑器,让你输入一条本次修改的描述信息,保存并关闭消息文件时,提交的内容将添加到本地仓库。
Kevin@qikegu MINGW64 /g/project/git-demo (master)
$ git commit
hint: Waiting for your editor to close the file...
[master 9441f90] add test1.txt
1 file changed, 1 insertion(+)
create mode 100644 test1.txt
也可以直接在提交命令行中添加描述信息,命令格式如下所示:
git commit -m "add test1.txt"
使用 git push 把本地仓库中的更新推送到远程仓库
现在,你的更改位于本地存仓库中。如果要分享你的修改,或者本地存储不安全想保存到远程仓库,可以使用 git push
把本地仓库中的更新推送到远程仓库。这个命令执行的过程,如下图所示:
执行git push
命令:
$ git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 286 bytes | 143.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/kevinhwu/git-demo.git
e1b9b71..9441f90 master -> master
执行git push
后,远程仓库内容将与本地仓库内容一致,各个部分状态如下图所示: