zoukankan      html  css  js  c++  java
  • Git简要使用

    from my blog:xdo0.github.io

    理解Git

    强烈建议先看这篇git - 简易指南,有助于理解

    补充一些git操作

    相信官方文档是最准确的指导,而以下只是适合新手用来快速掌握git

    与远端repo相连

    github提供两种方式的链接,HTTPS和SSH,其中SSH方式需要rsa密码,其详细使用可以参考这篇,如果你只想把代码放在本地,这步可以不需要。

    • git init会生成.git
    • git remote add origin github仓库的ssh链接本地仓库关联远端仓库(默认远端仓库是origin)
    • git push -u origin master(由于新建的GitHub仓库是空的,所以第一次推送master分支时需要加-u参数<同--set-upstream>,以后再推送就不用加了)

    clone已经存在的远端repo

    • git clone github仓库的ssh链接

    • 可以把repo导入到码云里去,然后git clone 码云的repo,在git remote add添加github的repo链接

      详见使用码云gitee来加速

    把github的commit记录清除

    在git bash上输入这些命令,其中序号是注释,这样可以看到github上只剩下1 commit

    1. Checkout
       git checkout --orphan latest_branch
    
    2. Add all the files
       git add -A
    
    3. Commit the changes
       git commit -am "commit message"
    
    4. Delete the branch
       git branch -D master
    
    5.Rename the current branch to master
       git branch -m master
    
    6.Finally, force update your repository
       git push -f origin master
    

    git add将文件添加至暂存区

    git add [参数] [--] <路径>

    具体看Git add常见用法,对于git add -i,见官方文档

    git commit提交暂存区文件到项目

    Git commit常见用法,-m其中提到的message,就是相当于对提交的修改起个注释/关键字方便标识,当你git push后会在github上的commit那栏和被修改的文件看到这个注释,如图。

    可以参考以下命名:

    1. bugfix: 表示修复 bug
    2. feature: 表示增加新功能
    3. add: 表示增加类、文件、代码块等
    4. delete: 表示删除类、文件、代码块等
    5. update: 表示对代码块、功能的更新
    6. refactor: 表示对代码块、功能重构
    7. arch: 表示输出中间版本,用于测试等
    8. release to v1.0.0: 表示打包输出的版本号
    9. style:格式(不影响代码运行的变动)

    git reset

    • git reset --hard (commit id)版本回退,其中commit id通过git log查看

      --hard参数将会将会重置(HEAD,INDEX(STAGING),WORKING COPY),其他参数有:

      1、soft: 重置git commit

      2、mixed: 重置git commit 和 git add

      3、hard: 重置git commit 和 git add 和工作副本的修改。

    • git reset HEAD就是回退到当前版本(没有commit)。git reset HEAD^回退到上一版本

    其他

    • git status <-s如果写上,给出简洁形式>查看项目状态

    • git remote -v查看与哪个远端仓库相连

    • 创建新分支:git branch (branchName)

    • 切换到新分支:git checkout (branchName)

    • 上面两个命令也可以合成为一个命令:git checkout -b branchName

    • git log <--oneline(如果写上,就显示简洁版)>查看更改历史,ctrl+c退出

    • 通常在发布软件的时候打一个tag,tag会记录版本的commit号,方便后期回溯,比如v1.0:

      git tag -a (标签名) <版本(结点)编号,如果不写,默认给当前结点打编号> -a应该是annotate(注解),没有-a是查看标签

    • git merge branchname合并分支

    • git branch -d branchname删除分支,-d是delete

    • git fetch将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中,

    • git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

      img

    困惑之处

    • git与github客户端的区别

      git作为一个分布式版本控制系统,能够记录你代码的修改版本,也能创建不同分支,有助于与他人协作,在没有与github的repo(repository仓库)建立连接前,代码都在本地的文件夹里。

      而gitbub提供了远端的repo,可以用git来操作。github客户端相当于集成了git的功能并提供了GUI(当然git也有GUI,但个人感觉没有github界面友好,我都是使用git bash,一个命令窗口).

      所以你只需要下载git就好,安装过程按默认的来就可。

    • git如何记录代码历史版本的

      本地上都在 .git文件夹里(需要打开隐藏的项目才能看到),你操作git bash来选择提交或回滚版本;

      github上在 commit中查看,不过download zip不会下载相应的.git文件夹,也就是说你下载的是github repo的最新版本。

    • git clone太慢,可以把github上的repo下载的zip解压后与github上的repo建立连接吗

      可以,大部分git出现的问题都是版本不同步导致的,需要git pull来同步。但是由于一些项目commit记录太多太大,导致这样和git clone相比速度也没快多少。我还是推荐使用码云gitee来加速

  • 相关阅读:
    codeforces 261B Maxim and Restaurant(概率DP)
    洛谷P3066 [USACO12DEC]逃跑的Barn (线段树合并)
    洛谷P1600 天天爱跑步(线段树合并)
    AtCoder
    SPOJ10606 BALNUM
    洛谷P3567[POI2014]KUR-Couriers(主席树+二分)
    洛谷P2633 Count on a tree(主席树上树)
    【.Net边角料系列】1-单例模式(我真不是你想的那样)
    生成二维码的开源工具对比(附源码了呀!)
    你所不知道的linq(二)
  • 原文地址:https://www.cnblogs.com/xdo0/p/13257518.html
Copyright © 2011-2022 走看看