美文网首页
Git使用笔记

Git使用笔记

作者: 小宇pod | 来源:发表于2018-09-01 17:08 被阅读0次

    因为之前任职的公司所使用的版本管理工具都是SVN,所以对Git了解不是很多。但是因为女朋友公司开始使用Git,她之前也没用过,然后来问我,我知道的也不是很多,显得有点菜,研究了一下午,写篇笔记,记录一下。

    一.关于Git

    这个直接点说就是一个版本控制系统,在这个角度上说,是和SVN一样的。但是和SVN不同的是,Git是一个分布式的版本控制系统。SVN是有一个远程库,开发人员从远程库把代码down下来,然后每次修改后提交到远程库,是一种中心化的方式;但Git不同,使用Git的话,参与进来的每台电脑都相当于一个版本库,这里有个最大的好处以为着,你的版本控制是在本地的,也就是说你在进行版本控制的时候不是需要联网的。

    二.准备工作

    首先你要在电脑安装Git,因为我用的是Mac,所以这部分只介绍Mac的安装。这里就不具体讲解git的安装了,如果需要自行百度。

    三.常用命令

    这里按SVN的操作习惯来解释Git的使用。
    我们都知道,如果使用SVN的话,常用的操作是,首先是从远程库chect out一个working copy到本地,修改之后要提交到远程库的话要update远程库的改变,如果有冲突解决冲突,然后commit到远程库。下面按照这个思路来介绍Git。

    1.创建远程库

    首先你得有一个远程库。
    这里就用github作为远程库来演示,布置在自己公司服务器的同理。


    5371535784802_.pic_hd.jpg

    在github上创建一个新库,做测试用;需要注意的是,创建的时候需要Initialize this repository with a README勾选上,即


    屏幕快照 2018-09-01 下午3.00.04.png
    至此,已经创建了一个远程库。
    屏幕快照 2018-09-01 下午3.01.48.png

    2.clone到本地

    这里是svn与git不同的地方。首先创建本地文件夹,并在在目录下终端输入git init,这里多说一下,先讲解一下用终端怎么控制git,后边会讲解怎么利用可视化工具进行git版本控制,这里举的例子是SourceTree。

    /Users/caoyu/Desktop/git测试
    192:git测试 caoyu$ git init
    Initialized empty Git repository in /Users/caoyu/Desktop/git测试/.git/
    

    这样就在本地初始化了一个git仓库。在对应文件夹下会出现一个.git的文件夹。
    然后clone到本地,指令是 git clone + 地址

    192:git测试 caoyu$ git clone https://github.com/PodCao/gitTest.git
    Cloning into 'gitTest'...
    remote: Counting objects: 3, done.
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
    Unpacking objects: 100% (3/3), done.
    

    现在已经把远程库clone到本地了。


    屏幕快照 2018-09-01 下午4.16.46.png

    3.修改并提交与更新

    现在在已经建好的git本地仓库中添加一个test.txt测试文件,添加到文件夹之后,终端输入指令,

    192:gitTest caoyu$ git add test.txt
    

    然后commit,commit指令是git commit -m "说明"

    192:gitTest caoyu$ git commit -m "测试"
    [master 386c90a] 测试
     Committer: PodCao <caoyu@192.168.2.104>
    Your name and email address were configured automatically based
    on your username and hostname. Please check that they are accurate.
    You can suppress this message by setting them explicitly:
    
        git config --global user.name "Your Name"
        git config --global user.email you@example.com
    
    After doing this, you may fix the identity used for this commit with:
    
        git commit --amend --reset-author
    
     1 file changed, 1 insertion(+)
     create mode 100644 test.txt
    

    但这里要注意下,git的commit和svn的commit不同:svn的commit是会把本地修改直接推到远程库;但是git只是把修改推到本地库,提交到远程库还需要push指令。

    192:gitTest caoyu$ git push https://github.com/PodCao/gitTest.git
    Counting objects: 3, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 287 bytes | 143.00 KiB/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    

    这样在远程库,我们就能看见在远程库已经收到提交。


    屏幕快照 2018-09-01 下午4.35.40.png

    接下来我们在本地再建一个本地库,模拟多人开发的情况。然后重复之前clone步骤。再把这个本地库做一次修改提交到远程库。
    这里和svn有点不同的是,svn指令是update,而git是pull。然后在原来库下执行指令

    192:git测试 caoyu$ git pull https://github.com/PodCao/gitTest.git
    remote: Counting objects: 9, done.
    remote: Compressing objects: 100% (5/5), done.
    remote: Total 9 (delta 0), reused 6 (delta 0), pack-reused 0
    Unpacking objects: 100% (9/9), done.
    From https://github.com/PodCao/gitTest
     * branch            HEAD       -> FETCH_HEAD
    

    至此已更新。

    4.冲突

    这里和svn处理的方式基本一致,也是更新到本地发现冲突,然后解决冲突,再次提交就好了,这里就不做细节解释了。

    相关文章

      网友评论

          本文标题:Git使用笔记

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