Git 基础指令
Git 基础指令
- Git 基础指令
- 获取 Git 仓库
- 在已存在目录中初始化仓库
 - 克隆现有的仓库
 
 - 记录仓库与仓库的更新
- 仓库的记录
 - 检查当前文件状态
 - 三部曲
- 跟踪新文件
 - 提交更新
 - 移除文件
 - 推送到远程仓库
 
 
 - 记录仓库与仓库的撤消操作
 
 - 获取 Git 仓库
 
获取 Git 仓库
在已存在目录中初始化仓库
??进入到需求目录(想要创建仓库的目录),必须是空文件夹。如果在一个而非空文件夹中进行版本控制,你应该开始追踪这些文件并进行初始提交。
命令:
$ git init
??该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件.
.git 的目录典型结构:
.git/
    config              # 文件包含项目特有的配置选项
    description         # 仅供 GitWeb 程序使用
    HEAD                # 指向目前被检出的分支
    
    hooks/              # 包含客户端或服务端的钩子脚本(hook scripts)
    info/               # 包含一个全局性排除(global exclude)文件
    objects/            # 存储所有数据内容
    refs/               # 存储指向数据(分支、远程仓库和标签等)的提交对象的指针
克隆现有的仓库
??Git 克隆的是该 Git 仓库服务器上的几乎所有数据,而不是仅仅复制完成你的工作所需要文件。 当你执行克隆命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。
先进入到需求目录(想要创建仓库的目录)
命令:
git clone  [name]
 
 指想要克隆的仓库地址,Git 支持多种协议,包括 https
[name] 可选,克隆后在你本地的名字(你想要一个不一样的名字)
记录仓库与仓库的更新
仓库的记录
??工作目录下的每一个文件都不外乎这两种状态:已记录 或 未记录。
- 
已记录的文件:是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后。它们的状态可能是未修改,已修改或已放入暂存区。简而言之,已记录的文件就是 Git 已经记录的文件。
 - 
未记录文件:工作目录中除已记录文件外的其它所有文件都属于未记录文件。它们既不存在于上次快照的记录中,也没有被放入暂存区。
 
注意:初次克隆某个仓库的时候,工作目录中的所有文件都属于已记录文件,并处于未修改状态,因为 Git 刚刚检出了它们,而你尚未编辑。
更新过程:
    未记录     ->  编辑
    已编辑     ->  暂存区
    暂存区     ->  提交
    已提交     ->  已记录
检查当前文件状态
??想要查看哪些文件处于什么状态
命令:
git status
初次克隆的仓库
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
??这说明你现在的工作目录相当干净。否则 Git 会在这里列出来。
三部曲
  工作区  - git add ->  暂存区  - git commit -> 历史区  - git push -> 远程仓库
    | <- git checkout --  |                       |                       |
    |                                             |                       |
    |    <----   git checkout HEAD   ----         |                       |
    |                                                                     |
    |                <----------    git pull   ----------                 |
跟踪新文件
??命令:
git add 
 
开始跟踪一个文件,将文件从工作区存储到暂存区。
可以使用正则表达式一次性完成多个提交。
可以使用 git status 验证操作
提交更新
??命令:
git commit
将暂存区内容提交到历史区,
命令执行后需要填写提交信息
想要快速提交可以:
git commit -m 
 
 为提交信息
移除文件
??如果你直接从工作目录中删除文件,运行 git status 时就会在 “Changes not staged for commit” 部分
$ rm PROJECTS.md
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add/rm ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working directory)
        deleted:    PROJECTS.md
no changes added to commit (use "git add" and/or "git commit -a")
  
需要使用 git rm 这样以后就不会出现在未跟踪文件清单中了。
如果要删除之前修改过或已经放到暂存区的文件,则必须使用强制删除选项 -f
推送到远程仓库
??命令:
git push  
  
 地址或仓库简称,
 推送分支
?
??如果想查看你已经配置的远程仓库服务器,运行 git remote 命令
指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简称与其对应的 URL。
运行:
git remote add   
  
添加一个新的远程 Git 仓库,
 给远程仓库设定的简称
 地址
?
??运行 git remote rename 可以修改一个远程仓库的简写名
$ git remote rename pb paul
$ git remote
origin
paul
这同样也会修改你所有远程跟踪的分支名字。
?
??使用 git remote remove 或 git remote rm 可以删除配置的远程仓库服务器
?
??使用 git fetch  能同步远程仓库。
记录仓库与仓库的撤消操作
在任何一个阶段,你都有可能想要撤消某些操作。
这里,我们将会学习几个撤消你所做修改的基本工具。注意,有些撤消操作是不可逆的。
这是在使用 Git 的过程中,会因为操作失误而导致之前的工作丢失的少有的几个地方之一。
??命令:
git reset HEAD 
 
我们可以这样来取消暂存
??撤消对文件的修改,将它还原成上次提交时的样子(或者刚克隆完的样子,或者刚把它放入工作目录时的样子)
git checkout -- 
 
你对那个文件在本地的任何修改都会消失——Git 会用最近提交的版本覆盖掉它。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。
注意:这并不是最好的方法,在 Git 分支保存进度,这通常是更好的做法。