git使用总结

目录

0、基本概念

1、安装后,配置用户名和邮箱

2、基本提交操作

3、版本控制检查

4、版本回退

5、撤销修改

6、删除文件

7、推送或抓取分支

8、合并与推送

9、Git常见指令


0、基本概念

我们先来理解下Git 工作区、暂存区和版本库概念

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:

  • 当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
  • 当执行 "git reset HEAD" 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
  • 当执行 "git rm --cached <file>" 命令时,会直接从暂存区删除文件,工作区则不做出改变。
  • 当执行 "git checkout ." 或者 "git checkout -- <file>" 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
  • 当执行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

1、安装后,配置用户名和邮箱

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

 注意:git config  --global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。

2、基本提交操作

$ git init                            //创建仓库
$ git add readme.txt                  //添加文件到暂存区
$ git commit -m "添加一个文件"         //提交到仓库

3、版本控制检查

当修改完readme.txt,而未提交文件,使用git status查看状态如下:

上面查询结果表明:readme.txt已被修改,但是处于未提交 状态。

可使用git diff readme.txt查看被修改的内容。如下:

使用git add xxxgit commit -m "修改信息记录"完,再次查询状态。

4、版本回退

(1)查看版本提交记录

只看版本号和提交记录,方法如下:--pretty=oneline

(2)版本回退

方法一:git reset  --hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。

方法二:git reset  --hard HEAD~100 ,回退前100版本。

方法三:git reset  --hard 9eeb242 (上述版本号)

5、撤销修改

当在readme.txt添加一行数据,但是现在我想退回上一个版本。命令: git checkout --readme.txt 意思就是,把readme.txt文件在工作区做的修改全部撤销,工作区与暂存区保持一致

6、删除文件

比如:有一个多余的test.txt文件

情况一:删除test.txt文件

情况二:想要恢复误删的test.txt文件

$ git checkout -- test.txt

7、推送或抓取分支

(1)推送分支

 推送到远端主分支命令: git push origin master

(2)抓取分支

抓取主分支命令:git clone https://XXXXX.git

想切换到dev分支做开发,就必须把远程的origin的dev分支切换到本地来,于是可以使用命令创建本地dev分支:git checkout  –b dev origin/dev

8、合并与推送

  git log test --not master  //屏蔽master分支

  git log --graph  //显示树状提交记录

  git push origin test:test         // 提交本地test分支作为远程的test分支

  git merge --no-ff -m “合并分支” dev  //保留分支信息

9、Git常见指令

   mkdir:         XX (创建一个空目录 XX指目录名)

   pwd:          显示当前目录的路径。

   git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

   git add XX       把xx文件添加到暂存区去。

   git commit –m “XX”  提交文件 –m 后面的是注释。

   git status        查看仓库状态

   git diff  XX      查看XX文件修改了那些内容

   git log          查看历史记录

   git reset  --hard HEAD^ 或者 git reset  --hard HEAD~ 回退到上一个版本

                        (如果想回退到100个版本,使用git reset –hard HEAD~100 )

   cat XX         查看XX文件内容

   git reflog       查看历史记录的版本号id

   git checkout -- XX  把XX文件在工作区的修改全部撤销。

   git rm XX          删除XX文件

   git remote add origin https://github.com/xx/testgit 关联一个远程库

   git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

   git clone https://github.com/xx/testgit  从远程库中克隆

   git checkout –b dev  创建dev分支 并切换到dev分支上

   git branch  查看当前所有的分支

   git checkout master 切换回master分支

   git merge dev    在当前的分支上合并dev分支

   git branch –d dev 删除dev分支

   git branch name  创建分支

   git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

   git stash list 查看所有被隐藏的文件列表

   git stash apply 恢复被隐藏的文件,但是内容不删除

   git stash drop 删除文件

   git stash pop 恢复文件的同时 也删除文件

   git remote 查看远程库的信息

   git remote –v 查看远程库的详细信息

  统计代码变更行数:

git log tag1..tag2 --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 + $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }'

参考:

1.Git教程推荐一(廖雪峰)

2.Git教程推荐二(云溪)

3.Git 少用 Pull 多用 Fetch 和 Merge

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值