git的基本操做(一)

1.什么是git?

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到很是大的项目版本管理。既然你了解了什么是git,那接下来就开始新建属于本身的git吧。git

2.下载和安装git

3.注册github帐号

  • 版本控制器的种类不少,这里我建议选择github版本控制器
  • 打开官网:github.com 右上角 sign in or sign up 分别为 登陆注册,点击 注册 后,须要填写一个 username(用户名)email(邮箱地址)password(密码) 填写完成后一路提交。

4.生成ssh key

  1. 打开 mac终端
  2. 检查 ssh key $ cd ~/.ssh
    若是存在,先将已有的ssh备份,或者将新建的ssh生成到另外的目录下,若是不存在,经过默认的参数直接生成ssh
  3. 生成ssh key
    $ ssh-keygen -t rsa -C 727417703@qq.com
    期间会提示你输入key的文件名称,密码和确认密码,一路Entergithub

    Generating public/private rsa key pair.windows

    Enter file in which to save the key (/Users/threebears/.ssh/id_rsa):缓存

    Enter passphrase (empty for no passphrase):bash

    Enter same passphrase again:markdown

5. 将ssh key保存在github中

  1. 打开刚刚生成的key文件 id_rsa.pub,由于mac以点开头的文件系统都是默认隐藏的,咱们能够经过macFdinder 前往刚刚保存key的默认目录/Users/threebears/.ssh/id_rsa,其 threebears 为你mac的用户名。
  2. 复制 id_rsa.pub 文件里的内容,打开你的github,在右上角头像小图标中选择 Settings
    github_sign_up.pgn
    github_sign_up.pgn
  3. 在左侧菜单栏中找到 SSH and GPG keys ,将刚刚复制的 ssh key 添加进去(ps: title能够忽略不填),保存成功后你就可使用 git clone or push 代码到 github 仓库了
  4. ssh key设置成功后能够在终端使用ssh -T git@github.com进行测试,如出现
    ssh_key_success.png
    ssh_key_success.png

6. git的基础使用

  • git init
    用 git init 在目录中建立新的 Git 仓库。 你能够在任什么时候候、任何目录中这么作,彻底是本地化的。
    在目录中执行 git init,就能够建立一个 Git 仓库了。好比咱们建立 test 项目:app

    $ mkdir test 建立文件夹
    $ cd test 跳转
    $ git init 建立git仓库
    $ Initialized empty Git repository in /Users/threebears/test/.git/
    /Users/threebears/test/ 目录下就建立了一个.git文件夹,这个就是git仓库。ssh

  • git clone
    使用git clone拷贝一个Git仓库到本地,让本身可以查看该项目,或者进行修改。
    若是你须要与他人合做一个项目,或者想要复制一个项目,看看代码,你就能够克隆那个项目。 好比:分布式

    $ git clone git@github.com:wz1509/GankIo-Kotlin.git
    Cloning into 'GankIo-Kotlin'...
    remote: Counting objects: 178, done.
    remote: Compressing objects: 100% (111/111), done.
    remote: Total 178 (delta 41), reused 172 (delta 37), pack-reused 0
    Receiving objects: 100% (178/178), 3.48 MiB | 18.00 KiB/s, done.
    Resolving deltas: 100% (41/41), done.测试

    静静等待一段时间就能够克隆到本地,期间若是提示权限被拒绝,请检查你的`ssh key`或设置本地git我的信息:复制代码

    $ git config --global user.name "your real name" #你的github用户名
    $ git config --global user.email "xxxxx@gmail.com" #对应的邮箱

  • git add
    使用git add命令可将该文件添加到缓存。如:

    $ touch test1.txt #建立一个文件
    $ touch test2.txt
    $ ls #列出该目录下全部文件,包含文件夹和文件

    README.md     gradle             gradlew.bat
     app           gradle.properties  img
     build.gradle  gradlew            settings.gradle
     test1.txt     test2.txt复制代码

    $ git status -s #查看和上次提交之间的状态

    ?? test1.txt
      ?? test2.txt复制代码

    $ git add test1.txt test2.txt #添加到缓存区
    $ git status -s

    A  test1.txt
      A  test2.txt复制代码

    git add .

    将全部变化的文件提交到缓存区

  • git reset HEAD
    撤销已在缓存区的文件

    git reset HEAD -- test1.txt
    git status -s

    ?? test1.txt
      A  test2.txt复制代码
  • git status
    查看在你上次提交以后是否有修改。若是在后面追加-s则是查看简短信息,反之查看详细信息。

    git status

    On branch master
      Your branch is up-to-date with 'origin/master'.
    
      Changes to be committed:
         (use "git reset HEAD <file>..." to unstage)
    
      new file:   test1.txt
      new file:   test2.txt复制代码

    git status -s

    A  test1.txt
      A  test2.txt复制代码
  • git diff
    查看最近的改动,好比终端敲上:$ git diff

    git_diff.jpg
    git_diff.jpg

    截取了部分日志, 红色部分前面有个- 表明我删除的,绿色前面有个+ 表明我增长的
    不过git diff只能比较当前文件和缓存区文件之间的差别。

  • git branch
    查看当前分支列表。好比一个项目须要一个团队共同去完成,这个时候就要用到分支来分配各自的任务。

    $ git branch #查看当前分支列表
    $ git branch wz #新建一个wz分支
    $ git checkout wz #切换到wz分支
    $ git branch -d wz #删除wz分支,若是-d换成-D就是强制删除
    $ git checkout -b wz #新建并切换到wz分支

    吻醒提示:图中的*和绿色表明当前所在分支。

    git_branch.jpg
    git_branch.jpg

    ⚠️注意1:若是你在wz分支内,那么不能删除wz分支,须要现切换到master后再删除wz分支。
    ⚠️注意2:新建的分支是在你当前所在的分支基础上进行的。好比你在master分支上新建了wz分支,那么wz就和master内容彻底一致。

  • git commit
    使用 git commit 将缓存区内容添加到仓库中。

    git commit -m "添加两个测试文件" #后面的文本为提交日志,建议每次提交到仓库都要写提交日志。

  • git pull origin master
    把远程仓库代码合并,以保证两端同步。
  • git push origin master
    把本地代码提交到github仓库master分支。通常在push前都会先pull,这样不容易形成冲突。
第一篇博客,markdown语法不太熟练,若是有什么问题能够联系我,谢谢!
QQ:727417703 邮箱:727417703@qq.com复制代码

个人博客:wz1509.github.io/

相关文章
相关标签/搜索