git基础-(1)-基本操作git init | git config | git status | git add | git commit

一、git init

git init 初始化git本地仓库,即在当前目录下创建 .git 文件夹【也就是隐藏目录】

cooldeMacBook-Pro:test cool$ git init
Initialized empty Git repository in /Users/cool/Documents/test/.git/
cooldeMacBook-Pro:test cool$ ls .git
HEAD		config		hooks		objects
branches	description	info		refs
cooldeMacBook-Pro:test cool$ 

二、git config

git config 创建签名,用来区分不同开发人员的身份。
用户名:tom
Email 地址:[email protected] 【不会发送邮件,只填用户名也可以】

1、创建签名(和修改签名操作一样)

项目级别/仓库级别:仅在当前本地库范围内有效
git config user.name tom_pro
git config user.email goodMorning_p[email protected]
信息保存位置:./.git/config 文件

系统用户级别:登录当前操作系统的用户范围
git config --global user.name tom_glb
git config --global user.email  [email protected]
信息保存位置:~/.gitconfig 文件

2、签名级别优先级

就近原则:
(1)项目级别优先于系统用户级别,二者都有时采用项目级别的签名。
(2)如果只有系统用户级别的签名,就以系统用户级别的签名为准。
(3)二者都没有不允许。

3、查看和修改签名

查看自己的用户名和邮箱地址:
  $ git config user.name
  $ git config user.email

修改自己的用户名和邮箱地址:
  $ git config --global user.name "xxx"
  $ git config --global user.email "xxx"

辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。

三、git status

用于查看工作区、暂存区状态。

举例:
在工作区创建a.text文件【.DS_Store是mac自带文件】,然后输入git status

cooldeMacBook-Pro:git-learn cool$ git status
On branch master

Initial commit

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

	.DS_Store
	a.text

nothing added to commit but untracked files present (use "git add" to track)

On branch master 就是在项目主干上,
Untracked files: 就是未跟踪的文件,也就是那些在工作区却还没有在暂存区中的文件。
nothing added to commit but untracked files present暂存区没有可提交的文件,除了那些还没有放到暂存区【即还没有被跟踪的】的文件。

四、git add

将工作区“新建/修改”过的文件添加到暂存区。

举例:
新建了a.text ,然后输入git add a.text将a.text 添加到暂存区。接着再输入git status

cooldeMacBook-Pro:git-learn cool$ git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   a.text

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

	.DS_Store

最后又输入 git rm --cached a.text 将a.text 从暂存区中移除。

cooldeMacBook-Pro:git-learn cool$ git rm --cached a.text
rm 'a.text'
cooldeMacBook-Pro:git-learn cool$ git status
On branch master

Initial commit

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

	.DS_Store
	a.text

nothing added to commit but untracked files present (use "git add" to track)
cooldeMacBook-Pro:git-learn cool$

五、git commit

将暂存区的内容提交到本地库

1、方法 git commit [file name]会调用 vim 编辑器
补充: vim中显示行号命令 :set nu

举例:
暂存区a.text文件提交到本地仓库: git commit a.text 会调用 vim 编辑器
### vim显示行号命令 :set nu

  1 first submit a.text【这句话是自己写的提交信息,下面的文字是默认存在的】
  2 # Please enter the commit message for your changes. Lines starting
  3 # with '#' will be ignored, and an empty message aborts the commit.
  4 # Explicit paths specified without -i or -o; assuming --only paths...
  5 # On branch master
  6 #
  7 # Initial commit
  8 #
  9 # Changes to be committed:
 10 #       new file:   a.text
 11 #
 12 # Untracked files:
 13 #       .DS_Store
 14 #
~                                                                               
~                                                                               
~                                                                               
~                                                                           
-- INSERT --

文件保存好以后,控制台显示信息:

cooldeMacBook-Pro:git-learn cool$ git commit a.text
[master (root-commit) b857e6b] first submit a.text     
 1 file changed, 6 insertions(+)
 create mode 100644 a.text
cooldeMacBook-Pro:git-learn cool$

=============================================
master (root-commit) 代表主干根提交
b857e6b 相当于版本号
first submit a.text 代表提交备注
1 file changed, 6 insertions(+) 一个文件被修改 增加了三行

2、方法 git commit -m "commit message" [file name]

六、文件修改更新后的操作

举例:
当在工作区修改了a.text文件后,查看状态 git status

cooldeMacBook-Pro:git-learn cool$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   a.text

no changes added to commit (use "git add" and/or "git commit -a")
cooldeMacBook-Pro:git-learn cool$

========================================================
Changes not staged for commit: 指修改的文件没有 添加到缓存区
"git checkout -- ...  to discard changes in working directory 指恢复历史记录,取消在工作区中的修改。

no changes added to commit (use "git add" and/or "git commit -a") 
指缓存区 还没有添加修改信息 可以先 git add 然后 git commit -a 或者直接 git commit -a【这里的 -a 不是和 a.text 的文件名没有任何关系】

将修改的文件提交到缓存区,然后查看状态:

cooldeMacBook-Pro:git-learn cool$ git add a.text
cooldeMacBook-Pro:git-learn cool$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	modified:   a.text

cooldeMacBook-Pro:git-learn cool$ 

=============================================== 
 (use "git reset HEAD <file>..." to unstage)   代表:将缓存区的 文件重新去除

将修改过的已经添加到暂存区的a.text 提交,然后查看状态:

cooldeMacBook-Pro:git-learn cool$ git commit -m "Second commit" a.text
[master 4e85073] Second commit
 1 file changed, 2 deletions(-)
cooldeMacBook-Pro:git-learn cool$ 

================================================
 1 file changed, 2 deletions(-)   代表 两行 删除了

 

其实前面已经提到过的,修改好的a.text 可以直接提交 git commit -m "Second commit" a.text 不需要先添加到暂存区。

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments