git使用

git使用

  1. 参考https://zhuanlan.zhihu.com/p/30044692

  2. 步骤

    • 在自己本地建立文件夹放代码并进入该文件夹 : mkdir homework1 && cd homework1
    • 下载仓库: git clone git@github.com:EDAGDUT/homework1.git
    • 创建分支:git branch zhangsan
    • 切换到分支:git checkout zhangsan
    • 完成代码后,添加所有代码:git add *
    • 提交代码到本地:git commit -m “this is 注释”
    • 推送到github仓库你所在的分支:git push origin zhangsan
  3. git.sh

    • echo "**************************************************************************************"
      echo "Git auto push start"
      echo "**************************************************************************************"
      git add *
      git commit -m $1
      echo "Git commit comment: $1"
      git push origin master
      echo "**************************************************************************************"
      echo "Git auto push end"
      echo "**************************************************************************************"
      
      
  4. git命令学习

    • git init:把这个目录变成git可以管理的仓库
    • git add filename:将文件添加到暂存区里面去
    • git commit -m “message”:将暂存区的文件提交到仓库区
    • git status:查看是否还有文件未提交
    • git diff filename:看下readme.txt文件到底改了什么内容
    • git log:显示从最近到最远的显示日志
    • git log –pretty=oneline:减少显示信息
    • git reset --hard HEAD^ :回退到上一个版本
    • git reset --hard HEAD^^ : 回退到上上个版本
    • git reset --hard HEAD~100: 回退到前100个版本
    • git reflog:获取到每一次commit的版本号
    • git reset --hard 6fcfc89:根据版本号来回退
    • git checkout – readme.txt 意思就是,把readme.txt文件在工作区做的修改全部撤销
      • 或者说回退到暂存区里的版本,也就是add后的版本
    • git checkout – b.txt 如果b.txt不小心删了,但还没add,也可以从版本库中恢复
  5. 工作区与暂存区的区别

    • 工作区:就是你在电脑上看到的目录(.git隐藏目录版本库除外)
    • 版本库:隐藏目录.git
    • 暂存区:版本库里面存了很多东西,其中最重
    • 要的就是stage(暂存区)
    • Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD
  6. 远程仓库

    • 创建SSH Key,操作如下:

      • ssh-keygen -t rsa –C “youremail@qq.com”该命令生成.ssh目录,该目录下有id_rsa和id_rsa.pub,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

        • ssh-keygen -t rsa -C “any comment can be here”

          -t = The type of the key to generate
          密钥的类型
          -C = comment to identify the key
          用于识别这个密钥的注释
          So the Comment is for you only and you can put anything inside

          这个注释会在公钥最好一行体现,可以cat .ssh/id_rsa.pub查看

        • 不用注释的话,直接ssh-keygen -t rsa即可

        • 生成密钥对时,有一个选项要求你设置文件生成的位置,默认的就好,输入enter

        • 生成密钥对时,有一个选项要求你设置密码(passphrase),该密码是用来保护你的私钥的密码。如果设置了则在使用私钥时会要求你输入这个密码;一般不设置,记不住,所以不设置直接enter两次就好

      • 登录github,打开” settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容,要获得id_rsa.pub的内容,直接输入cat .ssh/id_rsa.pub即可,终端会输入信息,全部复制。

      • 到这里,github就知道了公钥,你本地有私钥,就完成了通信

    • 如何添加远程库,因为你还没在github里面添加git仓库

      • 登录github上,然后在右上角找到“create a new repo”创建一个新的仓库。
      • 输入仓库名,其他默认,直接点击create
    • 将本地文件夹的东西传到这个新创建的git仓库

      • git init
        git add *
        git commit -m "Fist commit"
        git branch -M main
        git remote add origin git@github.com:.......git
        git push -u origin main
        
    • 克隆远程库后,就不需要git init和git remote了,已经初始化了

    • git config --list 查看用户名和邮箱是否设置成功

  7. 更多git命令讲解

    1. git branch -a可以看到所有分支
    2. git branch -m 可以将当前分支重命名为
    3. git push -u 设置 git pull/status 的上游
    4. git checkout -b 创建并切换到
    5. git push命令,实际上是把当前分支master推送到远程。
    6. 由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送给远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
    7. git push origin master从现在起,只要本地作了提交,就可以通过该命令
    8. git clone克隆一个本地库
    9. git merge合并分支内容,合并指定分支到当前分支上
      • Fast-forward合并是“快进模式“,直接把master指向dev的当前提交,有点覆盖的感觉
    10. git branch –d name删除分支
    11. Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<<HEAD是指主分支修改的内容,>>>>>fenzhi1 是指fenzhi1上修改的内容,我们可以修改下如下后保存
    12. git log查看分支合并的情况
    13. git merge –no-ff -m “注释” dev禁用”Fast forward”模式这样就算被删除了的分支,也可以通过git log查看版本号,来恢复分支
    14. 每个bug都可以通过一个临时分支来修复
      • 隐藏当前工作:git stash
      • git stash list查看工作现场
      • git stash pop,恢复的同时把stash内容也删除了
      • git stash apply恢复,恢复后,stash内容并不删除,需要使用命令git stash drop来删除。
    15. push:推送分支就是把该分支上所有本地提交到远程库中,推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上,一些修复bug分支不需要推送到远程去,可以先合并到主分支上,然后把主分支master推送到远程去。
    16. git checkout –b dev origin/dev创建远程origin分支到本地来,会更新文件或者git clone 也可以得到远程分支信息
    17. git 拉取更新远程分支列表git remote update origin --prune
    18. 小伙伴最新提交的和我试图推送的有冲突,解决的办法也很简单,上面已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后在本地合并,解决冲突,再推送
    19. git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接:如下:
      • git branch --set-upstream dev origin/dev
    20. 新建一个目录,将其初始化为Git代码库git init [project-name]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值