Go Git B站学习 from郭志宏-老郭 NO.1

Git简介

Git是一个开源的分布式版本控制软件,用来管理项目版本

版本控制:

1.备份 2.方便团队协同开发

安装

官网

Git (git-scm.com)

下载:

Git - Downloads

一路默认 点下一步

测试:

 git --version

git --help

Git中的四个工作区域

工作目录(Working Directory)

暂存区(Stage/Index)

资源库(Repository或Git Directory)

git仓库(Remote Directory)

Git 文件的四种状态 

Git的工作流程:

1.在工作目录中添加、修改文件;

2.在需要进行版本管理的文件放入暂存区域;

3.将暂存区域的文件提交到Git库

 因此,git管理的文件有三种状态:已修改(modified)、已暂存(staged)、已提交(committed)

        版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然有可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

        Git不关心文件两个版本之间的具体区别,而是关心文件的整体是否有改变,若文件被改变,在添加提交时就生成文件新版本的快照,而判断文件整体是否改变的方法就是用SHA-1算法计算文件的校验和。

Git常用命令 

git branch 查看本地所有分支 
git status 查看当前状态
git commit 提交
git branch -a 查看所有分支
git branch -r 查看远程所有分支
git commit -am "init" 提交并且加注释
git remote add origin git@192.168.1.119:ndshow 远程添加
git push origin master 将文件给推到服务器
git remote show origin 显示远程库origin里的资源
git push origin master:develop 推送
git push origin master:hb-dev 将本地库与远程服务器上的库进行关联
git checkout --track origin/dev 切换到远程dev分支
git branch -D master develop 删除本地库 develop
git checkout -b dev 建立一个本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add . 将所有文件都添加
git rm 文件名(包括路径) 从git中删除指定文件
git clone git://github.com/schacon/grit.git 从服务器上将代码拉下来
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file-name] 删除一个文件
git commit -a 提交当前repos的所有改变
git add [file name] 添加一个文件到git index

git commit -v 当你使用-v参数可以看到commit的差异
git commit -m "This is the message describing the commit" 添加commit信息
//-a 用于提交跟踪过的文件,untracked的文件还是无法提交
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -am '注释' 与-a是一致的,但是可以添加注释
git commit -a -v 一般提交命令

git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cache a.a 移除文件(只从暂存区和工作区删除)
git commit -m "remove" 移除文件(从git中删除)
git rm -f a.a 强行移除修改后文件(从暂存区和工作区删除)
git diff --cached 或 git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来

git remote add origin git@github.com:username/Hello-world.git
git push origin master 将本地项目给提交到服务器中

git pull 本地与服务器端同步

git push (远程仓库名)(分支名)将本地分支推送到服务器上去
git push origin serverfix:awesomebranch

...
初始化版本库,并提交到远程服务器端
mkdir WebApp
cd WebApp
git init
touch README
git add README
git commit -m 'first name'
git remote add origin git@github.com:daixu/WebApp.git

Git配置用户签名

作用:

签名的作用就是用来标识用户,以区分不同的开发人员

设置方式:

        1.为单个仓库单独设置,这种方式只针对单个仓库有效

        2.另一种是全局配置,采用这种方式配置后,所有仓库有效。如果对两种方式都进行了配置,那么会优先使用单个仓库配置的配置信息。

配置格式

方式1.单个仓库有效

git config user.name wzl(用户名)
git config user.email xxx@xx.com(邮箱)

用户名和邮箱自行设置

邮箱可以是假邮箱,只要符合邮箱格式即可

这种方式配置信息会保存再当前仓库目录下的.git/config文件中,打开查看发现保存的格式为:

[user]
    name = wzl
    email = wang2001zilong@126.com

方式2.全局有效

git config --global user.name wzl(用户名)
git config --global user.email xxx@xx.com(邮箱)

 这种方式配置信息会保存在系统盘的系统用户目录下的.gitconfig文件中,保存格式同上

建议

一般情况下都是配置为全局有效即可,简单,不用为每个仓库都设置签名,当需要为某个仓库配置不同信息是,只需要单独为这个仓库按照方式1配置一下即可。

Git初始化本地库

初始化命令

git init

git目录

        git目录是为你的项目存储所有历史和元信息的目录,包括所有的对象(commit,trees,blobs,stags),这些对象指向不同的分支。

        每个项目只能有一个git目录,这个叫.git的目录在你的项目的根目录下(默认,但不是必须的)

$>tree -L 1
.
|-- HEAD               #这个git项目目前处在哪个分支里
|-- config             #项目的配置信息,git config命令去启动它
|-- description        #项目的描述信息 
|-- hooks/             #系统默认钩子脚本目录
|-- index/             #索引文件,暂存区(stage)
|-- logs/              #各个refs的历史信息
|-- objects/           #git本地仓库的所有对象(commit,trees,blobs,tags)
|-- refs/              #标识你项目里的每个分支指向了哪个提交(commit)

查看Git状态

命令

git status

状态

git status 命令表示:文件、文件在工作区、暂存区的工作状态

        1.changes to be committed:表示文件已经从工作区add到暂存区的file,可以通过git restore --staged filename命令将该file从暂存区移出,只有工作去有该文件,该文件就为Untracked files。

        2.changes not staged for commit:表示工作区、暂存区都存在的file,在工作区进行修改或删除,但没有add到暂存区,可以通过git add file 命令将变更(修改、删除)的file add到暂存区,此时该file没有changes not staged for commit状态,也就是changed not staged for commit没有改file的记录了。可以通过git restore file的命令取消在file在工作区的变更,那么暂存区的file内容还是以前的,并且file在changed not staged for commit 状态下没有记录。

        3.untracked files:表示只在工作区有的file,也就是在暂存区没有该file

实例演示

$ touch test.html //touch这里可以理解为新建文件
>

$ git status
>

On branch master

No commits yet

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

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

$ git add test.html
>

$ git status

On branch master

No commits yet

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

$ git commit -m 'first commit'

[master (root-commit) 9188f6d] first commit
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 index.html
 create mode 100644 test.html

$ git status
>
On branch master
nothing to commit, working tree clean

$ vim test.html
>

 使用vim命令进入vim编辑界面

按“i”插入光标,进入insert模式

输入内容完成后,按esc回到正常模式

输入“:wq”,完成保存并退出(:w保存        :q退出)

$ git status
>
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   test.html

no changes added to commit (use "git add" and/or "git commit -a")
第一种方法---------省略add过程--------------------------------------------------------
$ git commit -am "second commmit"
>
warning: in the working copy of 'test.html', LF will be replaced by CRLF the next time Git touches it
[master 75c9afc] second commmit
 1 file changed, 1 insertion(+)
第二种方法-------------------------------------------------------------------------

$ git add test.html
>
$ git commit -m 'second commit'
>
------------------------------------------------------------------------------
$ git status
On branch master
nothing to commit, working tree clean

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值