git的常见命令

在Windows安装Git,可以从官网上直接下载程序,然后按默认选项安装即可

安装完成后,可以在开始菜单找到 “Git” -> “Git Bash”,弹出类似命令行窗口的东西,说明安装成功

然后在命令行输入以下命令,完成设置

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

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。

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

创建版本库(又名仓库),英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

1、在合适的位置,创建一个空目录

$ mkdir  目录名  --创建空目录
$ cd  目录名  --跳转该目录下
$ pwd   --显示当前目录的路径

2、通过 git init 命令把这个目录变成Git可以管理的仓库(所有 git 命令必须先跳转到对应的Git仓库下输入才有意义(git init 除外))

3、把文件添加到版本库

使用Windows的要特别注意:

千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报语法错误,等等。建议你下载Visual Studio Code代替记事本,不但功能强大,而且免费!

(1)在Git仓库(上一步创建的空目录)中编写一个文件(例如 test.txt )-- 因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。

(2)用 git add 命令告诉 Git,把文件提交到仓库(工作区 -> 暂存区)

(3)用 git commit 命令将 test.txt 提交到版本库(暂存区-> 当前分支master),-m 后面输入的是本次提交的说明,可以是任意内容,方便以后在临时记录里查找

$ git commit -m "add test.txt"
[master 609f21d] add test.txt
 1 file changed, 1 insertion(+)
 create mode 100644 WorkPro/test.txt

版本回退

文件修改后,经 git add 和 git commit -m "xxx"提交到版本库(工作区-> 暂存区-> 当前分支)

用git log / git reflog 查看提交的历史记录,然后用 git reset --hard HEAD^ 回退到上一个版本(上次提交的修改),HEAD代表当前版本,加上两个^代表上上个版本,如果要回退到几次前的版本,HEAD 处最好写成版本号的前几位

工作区和暂存区

工作区:在电脑中的可以看到的目录,例如上面举例的 test.txt 所在的文件夹就是一个版本库

版本库:工作区有一个隐藏目录  .git  ,这个不算工作区。而是Git 的版本库

版本库中最重要的就是暂存区(stage / index),还有Git 自动为我们创建的第一个分支master ,以及指向master的一个指针 HEAD

工作区 --git add --> 暂存区 --git commit --> 当前分支

提交修改:文件做出修改,经git add和git commit 提交到当前分支,git commit 只会提交已经git add 到暂存区的修改,例如 第一次修改 -- git add --> 第二次修改 -- git commit --> 当前分支,此时只有第一次修改被提交到暂存区,使用只有第一次修改被提交

撤销修改:  git checkout  -- <file>  / git restore <file>   -- 本质都是撤销工作区的修改

修改都需要  git add  添加到暂存区,第一次修改 add 到暂存区,然后第二次修改,若没有add,则第二次修改仍在工作区,只有第一次修改保存到暂存区,上述两条命令都是针对工作区

第一种情况:修改未添加到暂存区,撤销的就是在工作区的修改;

第二种情况:文件提交已经到暂存区,在做出修改,撤销修改就回到了刚添加到暂存区时的状态,

第三种情况:文件做了第一次修改,提交到了暂存区,文件做第二次修改,此时撤销只能回到刚到暂存区时的状态,要想撤销第一次修改,应该用  git restore -- staged <file> 退出暂存区才能撤销第一改修改;   或者用  git reset HEAD <file>  将暂存区的文件返回工作区,用  git checkout  -- <file> 或者  git restore <file> 一次将两次修改都撤销掉

如果要撤销以及提交到分支的修改,若没有推送到远程,可以用  git reset --hard HEAD^   回退到上一个版本,或者根据 commit id 回退到某一个版本

 删除文件:

在工作区删除:在Git库所对应的文件夹下手动删除文件 或者在Git Bash 用 rm <file> 命令删除

在版本库删除:在工作区删除文件以后,Git知道你删除了文件,此时版本库和工作区就不一致了,此时,用 git status 查询此时的有哪些文件被删除了。此时用  git rm <file>  然后   git commit  在版本库将对应文件删除

文件恢复:如果在工作区误删了文件,用  git checkout -- <file>  将版本库的版本替换工作区的版本,即还原; 如果在版本库也已删除,就只能用版本回退的命令,用  git reset --hard HEAD^  回退到上一个版本,如果期间还有别的commit ,就先用  git log  查之前的版本号,根据版本号回退  git reset --hard commit id 

注意!!!回退到之前的版本,两个版本间的所有commit  的修改都将被删除!!慎用!!!对应 commit 操作的版本号只能用  git reflog  查看,git log 查看包括回退版本和当前版本之间的版本号,

Git常见命令

文件修改(包括删除,删除的  rm <file>  然后 git rem <file> 相当于 git add )后,经 git add 和 git commit -m "xxx"提交到版本库(工作区-> 暂存区-> 当前分支)

git add <file>   --将文件(包括新的和修改后的)从工作区存到暂存区

git commit -m "xxx"   --将暂存区的所有文件提交到当前分支,-m 后面的是此时提交的注释

git status   -- 可以随时理解仓库的状态,例如 --文件是否有被修改,但未提交

cat test.txt  -- 查看test.txt的内容

git diff test.txt   --查看具体做了那些修改

git checkout  -- <file>  或者 git restore <file>   --撤销工作区的修改

git  restore --staged <file>   --将暂存区的文件放回工作区

rm <file>   --在工作区删除文件

git rm <file>   --将工作区的删除状态更新到暂存区

git log  -- 查看提交的历史记录,如果进行版本回退,那么只能查到包括回退到的版本及之前的版本,全部的commit 操作的版本号用 git refolg 查询

git log --pretty=oneline   --只看提交记录的版本号

git reset --hard HEAD^ --回退到上一个版本(上次提交的修改),HEAD代表当前版本,加上两个^代表上上个版本,所以HEAD 处最好写成版本号的前几位

git reflog  --用来记录每一次命令,当用 git reset --hard HEAD^ 回退到上一个版本时,又想回到原来最新的版本,就可以用 get reflog 查到相应的 commit id ,然后用版本回退命令实现版本切换

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值