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来加速

原文地址:https://www.cnblogs.com/xdo0/p/13257518.html