zoukankan      html  css  js  c++  java
  • Git使用小结

     ——————————2020.7.28更新————————————

    今天试了一下从本地上传文件到gitlab

    首先三部曲

    git init
    git add -A /xx
    git commit -m 'first push'

    然后和仓库建立关联

    git remote add origin ssh://git@XX.git

    然后在本地创建公钥

    ssh-keygen -t rsa -C "your_email@example.com"

    会提示公钥在本地的位置:C:Usersdell.ssh

    这时候把id_rsa.pub文件中的所有内容复制到gitlab的shh下

    然后先把远程仓库拉下来,注意,这里由于本地Git版本问题,要加上后缀

    git pull origin master --alow-unrelated-histories

    之后就可以

    git push -u origin master

    ——————————2020.7.22更新——————————————

    目前因为235机器损坏,因此在219上新建了和git仓库的关联,并且对XXXDARTS项目新建了分支XXXDARTS

    git branch XXXDARTS

    然后用git branch查看一下,发现已经有了一个master主分支,和另一个分支,如果在push的时候遇到主分支的问题,则可以切换到分支:

    git checkout XXXDARTS

    之后代码都会上传到上面去,Push的时候要注意是push -u origin XXXDARTS

      对Git和GitLab的使用作一个小结

    GitLab基于Git,可以作为团队开发项目使用,因此通常会有一个主分支master和其他分支,因此项目成员中任意一人不能随意push到主分支中,容易引起混乱;

    但如果项目中暂时只有自己一个人,那就可以操作master分支。

    1. 首先在服务器或者本地的项目里搞个公钥出来
    ssh-keygen -t rsa -C "your_email@example.com"  #Gitlab的账户邮箱

    如果在服务器上,则在主目录下,会有.ssh文件,里面应该产生了id_ras和id_rsa.pub两个文件,比如我服务器的路径是hyq/.ssh,用命令ls -a 即可查看所有隐藏文件

       2. cat id_rsa.pub打开这个文件,然后复制所有内容到GitLab的Profile Settings下的SSH Keys,这样就可以建立服务器和Gitlab的无密码连接了(默认已经在Gitlab上新建项目了)

       3.进入到项目目录下

    git init #初始化
    
    git add -A #把工作区文件放到暂存区,相当于缓存
    
    git commit -m '描述' #把暂存区文件提交到分支

    git remote add origin ssh://git@xx.xx.xx.xx:端口号/username/project.git #关联仓库

    这里有几个要注意的地方,

    • 一个是GitLab上传的东西以文本文件为主,包括py,txt,log,org,csv等等,较大的数据模型以及缓存文件等其他文件或者目录就不要上传了,

    因此可以写个.gitignore文件,里面把要忽略的文件写上去,比如我的.gitignore文件:

    train、test、validation是目录,里面放着数据,因此后缀是,best.mdl、nohup.out和__pycache__是文件,直接写上去进行。

    • 还有一个是万一不小心已经add了所有文件,那么这时再新建.gitignore已经来不及了,就要用以下命令
    git rf --cache -A #把缓存区的文件删除,工作区的文件并不会删除

    或者

    git rf --cache  '目录名'

    对于文件来说,则是

    git rm --cached '文件名'

    一定要带上--cached,不然只是git rm或者git rf的话,不仅删除暂存区的文件,也把工作区的文件删除了

    • 第三点,如果一开始建立的连接是http,想要变成ssh,那么必须先删除关联
    git remote rm origin

    然后,再建立新的关联

       4. 上传项目

    git push -u origin master

    这里有几个要注意的地方

    • 如果在GitLab上已经作了改动,比如新建了README.md文件,那么必须先pull下来,然后再push
      git pull origin master

       5.删除Git内容

      假如不小心把本地/服务器上的一个文件夹推送到了Gitlab仓库上,且已经commit了,此时想要删除远程仓库,但不想删除本地/服务器上的文件,此时可以如下操作:

    git rm -r --cached  /src/MixPath_NAS #假设推送的是/src/MixPath_NAS文件夹,--cached不会把本地的MixPath_NAS删除
    git commit -m 'delete /src/MixPath_NAS'
    git push -u origin master

       6.回滚

       6.1

      回滚可以让本地已经修改并commit的内容回到任意版本,只需要代码:

      其中版本号通过git log查看

    git reset --hard 版本号

      但是要注意的是,通过一次回滚从事件n到事件n-1,要是再想回到事件n,通过git log查看发现已经找不到事件n的版本号,此时可以通过

    git reflog

    查看

     比如v2是最新的n事件,但是通过git log只能看到“添加源代码”,此时再次

    git reset --hard c298e9f

    就能回滚到事件n了

      6.2 git 撤销,放弃本地修改

    git checkout -- filename

      此命令用来放弃掉所有还没有加入到缓存区(也就是git add)的内容修改和整个文件删除

      6.3  适用于撤销已经add后的本地修改

    git reset HEAD filename

       7.修复线上紧急bug

      创建一个新的分支用于修复bug,修复完成后合并到主分支中去

  • 相关阅读:
    18.12.30 【sssx】Trie图
    18.12.30 【sssx】线段树
    18.12.25 POJ 1039 Pipe
    18.12.25 POJ 3525 Most Distant Point from the Sea(半平面+二分)
    18.12.25 POJ 1228 Grandpa's Estate
    18.12.22 luogu P3047 [USACO12FEB]附近的牛Nearby Cows
    18.12.21 DSA 中缀表达式的值
    18.12.21 luogu P3650 [USACO1.3]滑雪课程设计Ski Course Design
    18.12.21 【USACO】Times17
    18.12.20 DSA Full Tank?(DP+BFS)
  • 原文地址:https://www.cnblogs.com/yqpy/p/11387928.html
Copyright © 2011-2022 走看看