GIT

作者: ZplD | 来源:发表于2018-09-01 15:12 被阅读0次

    版本控制系统

    版本控制系统常用分别有SVN与GIT,两者的区别在于SVN是集成式版本控制系统,而GIT为分布式版本控制系统.下面是GIT的
    安装与操作
    

    GIT的安装

    Windows下

    1、git的下载网站
    https://git-scm.com/downloads
    
    2、安装问题
    安装路径不要出现中文路径可能会出错
    
    3、环境配置
    一般是会自动配置环境,但如果没有的话,在我的电脑的属性里的高级配置中选择环境变量配置,在PATH下拼接上git的环境
    (一般在安装目录的bin目录下有个git.exe文件)
    4、查询是否成功
    cmd下输入 git --version
    

    Linux下

    1、安装
    sudo apt install git
    
    2、查询是否成功
    git --version
    

    GIT操作

    设置git

    ​ <u>后续远程仓库需要用到github,所以需要创建用户,建议用户名设置简单点,不然后面可能会很烦人</u>

    git config --global user.email "你的github的邮箱"
    git config --global user.name "你的github用户名"
    

    创建本地仓库

    mkdir test //创建本地仓库,仓库名可以任意
    cd test
    git init //初始化本地仓库
    

    创建忽略清单

    ​ 将要忽略的文件的绝对路径添加到.gitignore中,一行一个.忽略清单中的文件不会被管理

    touch .gitignore
    

    查看仓库状态

    ​ ?? 表示没有被仓库管理

    ​ A 表示添加到仓库管理

    ​ M 表示该文件被修改

    ​ D 表示该文件被删除

    ​ I 表示忽略了该文件

    ​ R 表示该文件被代替

    ​ C 表示冲突

    git status -s 
    

    在本地缓存中添加管理文件

    git add 文件名
    git add . //将目录下所有文件添加到本地缓存中托管
    

    将缓存区添加到本地仓库中

    git commit -m "对该操作的描述"
    
    0B(NM2_)}RJBR%WKYWTQWFX.png

    查看你的提交日志

    git log --pretty=oneline //将提交记录以一行一行形式显示
    
    image.png

    查询文件差异

    git diff 文件名 //会对比最新版本的该文本显示差异
    

    撤销未添加到缓存区的对应的文件的操作

    git checkout -- 文件名 //将该文件恢复到最新版本的状态
    

    撤销已添加到缓存区还未添加到本地仓库

    git reset --hard HEAD //将工作区恢复到最新版本的状态
    

    版本回退

    git reset --hard HEAD //将工作区恢复到最新版本的状态
    git reset --hard HEAD^ 
    //将工作区恢复到最新版本的上一个版本的状态,一个^就是最新的上一个,两个^就是最新的上两个依次类推
    git reset --hard 哈希码 //前六位即可
    

    ​ 提示:如果版本回退了后HEAD会指向退回的那个版本,并且你查询提交日志的时候他不会显示之前的最新版本,这时候可以用哈希码回到最初最新的版本


    QAY9{OGKONPCH`7~UH%N)RV.png
    git reset --hard 哈希码 //前六位即可
    

    远程仓库与本地仓库

    远程项目仓库创建

    首先需要在github创建一个远程项目仓库,网页右上角有个加号里面的New repository
    

    连接远程仓库

    一、HTTPS连接

    git remote add 你创建远程仓库的项目名 HTTPS的URL 
    // HTTPS的URL在你的远程仓库右上角有个Clone or download选择use HTTPS
    git remote -v //查询连接是否成功
    git remote rm 你创建远程仓库的项目名 // 删除远程仓库连接
    
    将本地仓库上传到远程仓库
    git push -u 项目名 master // 需要输入用户名和密码
    

    ​ 如果出现以下错误的时候,则将-u改为-f即可

    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first integrate the remote changes
    hint: (e.g., 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.

    将远程仓库下载到本地仓库中
    git pull 远程仓库名 master
    
    将远程仓库克隆到本地仓库
    git clone HTTPS的URL 目录名
    

    提示:该方法不推荐因为每次本地仓库上传到远程仓库都得输入账号密码

    二、SSH连接

    该方法需要在linux下配置ssh
    mkdir ~/.ssh //创建ssh目录
    cd ~/.ssh
    vi id_rsa.pub
    //该文件中有与远程仓库连接的密钥,将里面的内容复制到txt中先将里面自带的空格,与最后面的网址去掉复制到github
    //的密钥中
    
    github中设置ssh连接
    网页右上角>>settings>>SSH and GPG keys>>New SSH key
    

    ​ 本地仓库上传到远程仓库或远程仓库下载到本地仓库命令都和HTTPS一样,但不用输入账号与密码因为之前已经配置过了,就是最后的HTTPSURL改成SSH的URL

    创建分支与合并

    创建分支

    git branch 分支名
    git checkout -b 分支名//创建分支并跳转到该分支
    

    查看当前分支

    git branch //*表示在哪个分支
    

    删除分支

    git branch -d 分支名
    

    切换分支

    git checkout 分支名
    

    上传分支

    git push 项目名 分支名
    

    合并分支

    合并完后记得add与commit

    git merge 要合并到的主分支名 //要先切换到要合并分支的分支
    

    抓取分支

    git checkout -b 远程仓库下的分支名 项目名/远程仓库下的分支名
    

    冲突与覆盖问题

    在分支a(该分支下有文件1,文件2,文件3,文件4)下创建分支b和分支c,分支b与c中的内容是和a是一样的,但当b改变文件1内的内容时,在合并到a中时,a中的文件1内容会被覆盖,但这时候如果c也改变文件1中的内容时并且合并到a,那么这时候就会产生冲突问题,类似此类的冲突问题还有很多种,可以参考https://www.yiibai.com/git/git_handling_conflicts.html

    画工太烂请谅解

    相关文章

      网友评论

          本文标题:GIT

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