zoukankan      html  css  js  c++  java
  • git

    一、安装git

    sudo yum install git(红帽系统)

     

    二、安装完成后,还需要最后一步设置,在命令行输入

    git config --global user.name "your_user"
    
    git config --global user.email “your_user_email”

     因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址(指的是自己注册git的账号和邮箱)

    三、  创建版本库

     什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来

     每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

     所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录

     第一步:创建一个空目录

    mkdir Quality_Control_Scripts
    
    cd Quality_Control_Scripts
    

     第二步,通过git init命令把这个目录变成Git可以管理的仓库:

    git init # 会有下面的提示
    # Initialized empty Git repository in Quality_Control_Scripts/.git/

     告诉你是一个空的仓库(empty Git repository),可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了

     如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见

     第三步,用命令git add告诉Git,把文件添加到仓库:比如我有一个代码文件Data_Integrity.py,一定要放在第一步建立的目录下面

    git add Data_Integrity.py
    # 执行上面的命令,没有任何显示,这就对了
    
    git add . 
    # 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录

     第四步,用命令git commit告诉Git,把文件提交到仓库:

    git commit -m "add file Data_Integrity.py"
    
    # -m后是说明信息,方便阅读

     为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如

    git add file1.txt
    git add file2.txt file3.txt
    git commit -m "add 3 files."

     git status命令可以让我们时刻掌握仓库当前的状态,比如某个文件被修改过了,但还没有准备提交的修改。

     git diff顾名思义就是查看difference

    四、使用git将本地项目上传到Gitlab

     1)本地安装git:https://gitforwindows.org/

     2)在gitlab上创建项目,填写项目名称,选择项目访问权限,private为授权的组员才能访问

     3)打开待上传代码所在文件夹,将项目IDE配置信息删除(这样是为了保证IDE配置信息不会上传到Gitlab中, 也可以使用命令行在上传时将配置文件过滤, 个人觉得可视化删除方便些)

     4)在待上传的项目代码路径下鼠标右键打开git bash here,然后执行下面的操作

    git config --global user.name "username"
    git config --global user.email "email_address"
    git init
    git remote add origin 你刚才建立的项目连接,如:
    git remote add origin http://your_address/*.git

     有时候出现下面的提升:fatal: remote origin already exists.

     可以先执行:git remote rm origin

     然后再:

    git remote add origin http://your_address/*.git
    git add .
    git commit
    git config http.postBuffer 524288000 (特别提醒: 此行是在本地设置缓存, 有些项目文件较大, 使用http无法上传,可设置此命令) #注意这里我没有尝试这条命令
    git push -u origin master # 将代码推送到gitlab端
    # 注意这里用http协议

        注意一:access denied

      执行上面的git push,然后会弹出来输入账号密码的,如果输错,会出现下面的错误信息:

    '''
    remote: HTTP Basic: Access denied
    fatal: Authentication failed for……
    '''

     解决办法:

    git config --system --unset credential.helper

      之后你在push就会提示输入名称和密码------重要

     注意二:ssh密钥添加

      在git bash窗口运行:ssh-keygen -t rsa -C "email_address" # 自己的邮箱

      连续按3个回车(密码默认为空),得到 id_rsa 和 id_rsa.pub 文件,说明生成成功

      将生成的id_rsa.pub内容添加到gitlab的ssh key中,然后可以向gitlab上传代码

     当自己和伙伴修改了同样的文件,但是伙伴先提交了gitlab上,为了避免git pull把自己本地的覆盖,我们可以这么操作:

    git stash #先将本地修改存储起来
    git pull #存储后就可以git pull了
    

     但是pull提示下面的错误:

     我们在pull之前可能进行了stash操作,但是并没有merge,所以我们stash之后需要进行merge操作:

    git add -u 
    git commit -m"" 
    git pull

     然后自己修改后就可以提交到gitlab

    git add .
    git commit –m "注释"
    git config http.postBuffer 524288000# (特别提醒: 此行是在本地设置缓存, 有些项目文件较大, 使用http无法上传,可设置此命令) #注意这里我没有尝试这条命令
    git push -u origin master # 将代码推送到gitlab端

    五、每次push输入密码问题

     参考这里

  • 相关阅读:
    集合:List接口的实现类(ArrayList、LinkedList、Vector)
    IDEA:断点调试
    集合:Collection接口(常用方法、遍历)
    cookie中不能存储特殊字符的解决方案
    js:ES6中的类和对象、构造函数和原型
    jq:尺寸、位置(尺寸&位置)
    jq:插件(瀑布流、图片的懒加载、全屏滚动)
    jq:效果(显示、隐藏、切换、淡入淡出效果、自定义动画)
    jq:样式操作(返回css样式属性的值、修改属性的值、设置样式的方法)
    js:client、scroll(client与scroll)
  • 原文地址:https://www.cnblogs.com/always-fight/p/11122397.html
Copyright © 2011-2022 走看看