美文网首页
2021-10-07 git用法

2021-10-07 git用法

作者: MaggieXie | 来源:发表于2021-10-07 17:36 被阅读0次

    git,按照官方的定义来说,是一个开源的分布式版本控制系统。
    翻译成人话,大概就是可以管理不同版本的文件。比如在日常生活中,当我们在进行某个项目时,每次修改都要保存一点,如果觉得本次修改的不好,又想找回原来的版本,就得不停地存储新的版本的文件。更要命的是,如果这个项目是多人协作的,你就得不停地合并不同人的建议。而git就是用来解决这个问题的。
    git是由Linus用C语言编写的,对,就是那个Linux操作系统的那位鼻祖人物,采用的是分布式的控制系统,而不是集中式。



    集中式指的是所有的库都在一个中央服务器中,开发者在使用的时候必须从服务器中下载文件,修订完毕后再上传。这就导致必须联网才能工作,并且安全性不高,一旦中央处理器瘫痪,文件就全部都销毁了。
    而分布式就不存在这样的一个中央服务器了,每个人的电脑上都有一个完整的库,可以通过相互传输文件给对方实现交互。


    首先来了解一下本地中的三个存储区域。
    working directory就是工作的区域,可以在此对文件进行修改。repository就是提交最终版本的文件的地方,并且它是开源的。暂存区是暂时存放文件的地方,可以叫做stage/index,文件需要先进入暂存区,才能提交到仓库中。


    1.git的安装
    点击Git - Downloads (git-scm.com),选择合适的版本安装,安装完成后,如果右击能出现下图所示的“Git GUI Here”和“Git Bash Here”代表安装成功。GUI表示通过图像界面操作,Bash表示通过命令行格式进行操作。这边主要演示通过Bash的方式。

    2.创立仓库
    本地仓库的创立很简单,比如在windows操作系统下,我在桌面新建一个git的文件夹。
    (1)在该文件夹下右键选择“Gut Bash Here”创建一个新的文件夹作为项目仓库。

    $ mkdir test
    

    仓库新建完成后需要对其将当前工作目录切换到test的文件夹下或者点击test文件夹,在该文件夹下右键“Git Bash Here”。

    $ cd test
    $ pwd
    #C:/Users/Lenovo/Desktop/git/test
    

    (2)初始化repository

    $ git init
    #Initialized empty Git repository in #C:/Users/Lenovo/Desktop/git/test/.git/
    

    通过该命令对仓库初始化,会发现在该目录下,出现了.git的隐藏文件。(如果无法显示隐藏文件的,自行百度)

    (3)提交文件

    $ touch readme #创建文件
    $ git status #查看文件状态
    $ git status
    #On branch master
    #No commits yet
    #Untracked files:
    #  (use "git add <file>..." to include in what will be committed)
    #        readme
    #nothing added to commit but untracked files present (use "git add" #to track)
    

    创建了一个名为readme的文件,可以通过vi或者打开文件输入任意字符。
    目前没有可以commit到仓库的文件,但是存在一个未被记录的文件,可以通过将它提交到暂存区使git能够跟踪该文件。

    $ git add readme #将文件从工作区提交到暂存区
    $ git status
    #On branch master
    #No commits yet
    #Changes to be commited:
    #    (use "git rm --cached <file>..." to unstage)
    #             new file:       readme
    $ git commit -m "this is the first time to commit file using git" #引号写对该文件修改的描述,将文件从暂存区提交到仓库,一般最后完成后提交一次
    #[master (root-commit) 34f4431] this is the first time to commit file #using git
    # 1 file changed, 1 insertion(+)
    # create mode 100644 readme
    $ git status
    #On branch master
    #nothing to commit, working tree clean
    

    (4)修改文件
    如果对文件进行了修改,而此时文件还在working directory,尚未提交到暂存区,可以通过git restore来恢复文件到上一次修改的状态。

    $ 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:   readme
    #no changes added to commit (use "git add" and/or "git commit -a")
    $ git restore readme
    

    如果修改的文件已经提交到了暂存区,通过git restore命令将其恢复到未提交到暂存区的状态,但是工作区的该文件已经经过了修改。可以进一步通过上一步的命令去校工作目录中的文件修改。

    $ git restore --unstaged readme
    

    如果对文件进行了删除

    $ rm readme #从工作目录中把文件删除
    $ git rm readme 
    $ git commit -m “description”
    

    注意:所有的文件修改都遵循从working directory——index——repository三个步骤。

    (6)递交到远程服务器
    首先查看在用户的主目录下,是否存在.ssh的文件夹,其中包含id_rsa.pub公钥和id_rsa私钥。
    例如我的电脑中.ssh存在于C:\Users\Lenovo.ssh
    在GitHub的setting中加入id_rsa.pub文件的内容。
    如果不存在,需要创建ssh.key

    $ ssh-keygen -t rsa -C "youremail@example.com"
    

    接下来需要添加本地库到远程库中

    $ git remote add origin git@github.com:TIPPLERXIE/text.git #格式为用户名/库名
    

    接下来就能看到github的仓库中同步了在本地的修改的文件。


    browse Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)
    Git 分支管理 | 菜鸟教程 (runoob.com) for more information

    相关文章

      网友评论

          本文标题:2021-10-07 git用法

          本文链接:https://www.haomeiwen.com/subject/plqmnltx.html