zoukankan      html  css  js  c++  java
  • Git学习1-- 简介、命令使用、添加远程仓库方法


    一、简介:
    Git是分布式版本控制系统
    分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,
    分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,
    没有它大家也一样干活,只是交换修改不方便而已。
    不需要联网,安全性高,

    CVS及SVN都是集中式的版本控制系统
    版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,
    所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
    必须联网才能工作,

    二、命令使用:

    每个机器都必须自报家门:你的名字和Email地址
    git config --global user.name lijun
    git config --global user.email 574747217@qq.com

    创建版本库repository:
    #把这个目录变成Git可以管理的仓库
    mkdir project && cd project
    git init

    #把文件添加到仓库
    git add

    #把文件提交到仓库
    git commit -m "说明注释"

    #查看文件修改内容:
    git diff readme.txt

    git status

    #查看仓库提交历史记录:
    git log

    #版本回退:commit_id没必要写全,前几位就可以了,Git会自动去找
    git reset --hard commit_id

    #每一次命令的记录:
    git reflog

    --工作区:就是你在电脑里能看到的目录
    --版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
    版本库里包括暂存区,还有自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
    git add把文件添加进去,实际上就是把文件修改添加到暂存区;
    git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,
    第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

    #删除文件:先手动删除文件,然后使用git rm <file>和git add<file>效果是一样的。
    git rm

    三、远程仓库:
    注册github,ssh-keygen -t rsa生成公钥,并将公钥配置至github

    Quick setup — if you’ve done this kind of thing before
    https://github.com/lijun47/learngit.git
    We recommend every repository include a README, LICENSE, and .gitignore.

    …or create a new repository on the command line
    echo "# learngit" >> README.md
    git init
    git add README.md
    git commit -m "first commit"
    git remote add origin https://github.com/lijun47/learngit.git
    git push -u origin master

    …or push an existing repository from the command line
    git remote add origin https://github.com/lijun47/learngit.git

    #把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
    #由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
    git push -u origin master

    #更换成ssh方式推送到远程仓库:
    git remote -v
    git remote rm origin
    git remote add origin git@github.com:lijun47/learngit.git
    git push origin master

    #从远程克隆仓库:
    git clone https://url

    Git支持多种协议:默认的git://使用ssh,但也可以使用https等其他协议
    使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,
    但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。

    #创建和合并分支:
    git checkout -b dev #-b参数表示创建并切换,git branch dev git checkout dev

    #用git branch命令查看当前分支:
    git branch

    #合并:用于合并指定分支到当前分支。Fast-forward
    git merge dev
    git branch -d dev #合并后删除分支

    #Git鼓励大量使用分支:

    查看分支:git branch
    创建分支:git branch <name>
    切换分支:git checkout <name>
    创建+切换分支:git checkout -b <name>
    合并某分支到当前分支:git merge <name>
    删除分支:git branch -d <name>

  • 相关阅读:
    bzoj 4012: [HNOI2015]开店
    POJ 1054 The Troublesome Frog
    POJ 3171 Cleaning Shifts
    POJ 3411 Paid Roads
    POJ 3045 Cow Acrobats
    POJ 1742 Coins
    POJ 3181 Dollar Dayz
    POJ 3040 Allowance
    POJ 3666 Making the Grade
    洛谷 P3657 [USACO17FEB]Why Did the Cow Cross the Road II P
  • 原文地址:https://www.cnblogs.com/pythonlee/p/9549564.html
Copyright © 2011-2022 走看看