您的位置:首页 > 其它

Git 的基本使用

2022-05-04 16:25 239 查看

基础操作

创建版本库(repository)

1.选择一个合适的地方,创建一个新目录

mkdir learngit
cd learngit

2.通过

git init
命令把这个目录变成Git可以管理的仓库

git init
Initialized empty Git repository in /home/username/learngit/.git/

3.用命令

git add
,把文件添加到暂存区:

git add readme.txt

4.用命令

git commit
,把暂存区的所有内容提交到当前分支(master):

git commit -m "本次提交说明"

版本回退

1.修改readme.txt文件,

git status
查看状态

2.

git diff readme.txt
查看修改后的文件与原文件的差异

3.添加并提交到仓库

git add readme.txtgit commit -m "修改说明"

3.显示提交日志

git log
,加上
--pretty=oneline
输出简洁信息

git log
# or
# git log --pretty=oneline

回退到上一版本

Git中使用 HEAD 表示当前版本(即最新的提交),上一版本为HEAD^,上上版本为HEAD^^,...,如果往上有100个版本,HEAD~100

git reset --hard HEAD^

此时,git log查看,最新的那个版本已经看不到了,想要恢复,可以利用

git reflog
找到commit id:

git reset --hard 52b5642  # id

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的

HEAD
指针,当你回退版本的时候,Git仅仅是把 HEAD 重指向上一版本:

工作区和暂存区

  1. 工作区(Working Directory)

    就是电脑中能看到的目录,如前面的learngit文件夹就是一个工作区。

  2. 版本库(Repository)

    工作区有一个隐藏的目录

    .git
    ,这个不算工作区,而是Git的版本库。

    版本库中最重要的就是称为

    stage/index
    的暂存区,还有Git为我们自动创建的第一个分支仓库
    master
    ,以及指向
    master
    的一个指针叫
    HEAD

    以下笔记内容来自评论区@九只蜗牛Leo

    工作区>>>>暂存区>>>>仓库

      git add
      把文件从工作区>>>>暂存区,
      git commit
      把文件从暂存区>>>>仓库,

    • git diff
      查看工作区和暂存区差异,

    • git diff --cached
      查看暂存区和仓库差异,

    • git diff HEAD
      查看工作区和仓库的差异,

    • git add
      的反向命令
      git checkout
      ,撤销工作区修改,即把暂存区最新版本转移到工作区,

    • git commit
      的反向命令
      git reset HEAD
      ,就是把仓库最新版本转移到暂存区

撤销修改

回退在工作区修改了文件,但未add到暂存区的文件:

git restore <file>
# 等价
git checkout -- <file>

回退已经add到暂存区,还未进行commit的文件:

git restore --staged <file>
# 等价
git reset HEAD <file>

删除文件

git rm <file>
git commit -m "remove file"

远程仓库

添加远程仓库

  1. 在Github上 ,Create a new repo,仓库名:learngit,其他默认。

  2. 根据GitHub提示,在本地learngit仓库下执行:

    git remote add origin git@github.com:jwcen/learngit.git  # jwcen替换为你自己的用户名
  3. 把本地库的所有内容推送到远程库:

    当前分支

    master
    推送到远程 origin,远程库为 origin(默认名)。

    git push -u origin master  # 由于远程库是空的,首次推送加-u
    # git push origin master   以后只要本地做了提交,就直接push

    Git把本地的

    master
    分支内容推送的远程新的
    master
    分支,还会把本地的
    master
    分支和远程的
    master
    分支关联起来

    注意:

    执行推送命令后如果要你输入账号和密码:

    账号:GitHub用户名

    密码:

    需要在【settings】中找到【developer settings】-> 【Personal access tokens】-> 【Generate new token】

    2. 然后复制生成的token

解决 git push 后每次都要输入账号密码:

git config credential.helper store   # 只对当前仓库生效(推荐)
git config -- global credential.helper store  # 全局

删除远程库

  1. 建议先查看远程库信息

    git remote -v
  2. 根据名字删除,比如删除 origin

    git remote rm origin

    此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。

从远程库克隆

git clone git@github.com:jwcen/gitskills.git

如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。

Git支持多种协议,默认的

git://
使用ssh,也可使用
https
等其他协议。

使用

https
除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用
ssh
协议而只能用
https

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: