Git 与 GitHub 入门级

今天我们来搞一下Git

这东西虽然没啥搞头儿,但是开发当中还必须得会用,谁让你我都是苦逼的开发呢~~~~

一、下载与安装

这玩意简单,给你赋个图片,自己研究一下~~~~

1.官网:https://git-scm.com/downloads

2.下载:

3.主要事项:

还有安装的路径,尽量都是英文,别整中文

4.安装完成,需要做进一步的设置

  • 打开这个图标:

  • 打开后的样子(版本不一样,可能有点差别,大同小异)

  • Git是分布式版本控制系统,所以需要填写用户名邮箱作为一个标识。

    命令:

    设置用户名:git config --global user.name "你自己的用户名"

    设 置 邮 箱: git config --global user.email "你自己的邮箱"

  • 验证是否设置成功

    在你的Windows系统中,C:\Users\admin下(大部分是这个路径),找到 .gitconfig 文件里可以看到跟你配置的信息一致,说明设置成功

二、实操

1.创建版本库

首先在你的任意盘符下,执行以下操作,我的习惯是在某个盘下建个文件夹来当做git的版本库(暂时就是一个文件夹,还不是版本库,这点要明确)

比如:我在 G:\JavaInstall  下建个文件夹叫gitHome

那么就在gitHome 文件夹的里面 一定是里面 ,点击鼠标右键,找到 Git Bash 打开,出现如图:

这个其实就是用git的窗口打开的这个文件,主要这个路径,用于创建版本库

  • 下面开始创建版本库

    命令 : git init

此时可以看到 在你的gitHome 文件夹下出现个 .git (若没有显示,则去开启隐藏文件)

所以此时,你的 .git 就是你的本地库

  • 打开.git 会出现以下文件,我来做下详解

2.文件新建+状态查看+新增+提交+新增文件内容

  • ① 查看本地版本库的各个文件的状态 : git status

    例子:是用 touch 命令新建一个 a.txt文件,但此时要明确,a.txt文件还不属于git版本库,必须加入到git版本库才行

    重要的一点,此时执行了git add a.txt之后,虽然应加入到了git的版本库,但是此时只是加入到了git的临时库,必要进行 commit

    执行 git commit a.txt 出现以下信息

    表示此时你需要键入你改变的信息,否则‘#‘部分将会被忽略,并且将会提交一个空文件

    意思就是 你需要再写一遍 你要提交的文件,那太麻烦了,于是 q! 命令,不保存退出

    使用另一种方法:

    命令: git commit -m "create file" a.txt

    OK,完成以上的步骤,才算真正的将a.txt 文件纳入git管理;

  • ② 修改刚才的a.txt文件,会发现git的不同之处

    命令:vim a.txt 增加几条数据

    【注】:在git更新一个文件时,原本已经将a.txt文件纳入到管理中了,修改该文件后,还需要再纳入一遍,它不会将原有已经在版本库中的文件直接保存

    命令依次:git add a.txt

    git commit -m "update file" a.txt

    git status

3.日志+版本号+对比不同

3.1查看日志:

① git log a.txt  

② git log --pretty=oneline a.txt  

这两种查看git日志的方式
第一个显示信息比较全,作者啊,时间啊,以及对文件是create 还是 update啊,都显示的清晰,但是往往格式太占用屏幕,显示不全
第二种,显示的就是具体做个啥操作,一行显示完全,不去关心谁创建的,谁修改的等信息  

3.2 版本号

在执行更新操作的时候,尽量加个版本号:
如:git commit -m "update file 01" a.txt
这个 "01" 就是版本号,每次对该文件进行更新操作时,尽量给个版本,方便以后查找对比  

3.3 对比不同

命令:git diff a.txt

4. 版本回退+版本穿梭+版本撤销

4.1 版本回退

命令:git reset --hard HEAD^     【注】:HEAD是个指针,^:表示回退一步

4.2 版本穿梭

① 命令: git reflog a.txt  查看所有日志记录的指针

② 根据上一步的指针,选择要回退到哪一个位置

以上是回退一步,或者回到指定的步骤
那么当要回退到很多步呢?
使用命令:git reset --hard HEAD~4   :表示回退4步  

4.3 版本撤销

命令:git checkout -- a.txt

小总结:
1.库,首先得是个git库 git init
2.得有个东西管理,新建个文件 touch a.txt
    之后,向里面填东西,首次的话叫纳入git管理  git add a.txt
3.git commit -m "create file" a.txt  提交到自己的本地库
4.git log 查看git的各种日志
5.git status 查看当前版本库的状态
6. git commit 相当于往前走,那么 就有往后退 git reset --hard HEAD^ 表示往后退一步
    其中,一个 ^ 表示退一步,多个 ^ 表示退多步
7.版本穿梭 用git reflog a.txt  查出他的全部指针版本号
    再结合 "git reset --hard 7位版本号" 穿梭到想要的版本
8.撤销  使用 "git checkout -- 文件名"  

5. 理解工作区+版本库+暂存区

5.1 工作区

工作区(Working Directory):就是你电脑本地硬盘目录

5.2 版本区

版本库(Repository):工作区有个隐藏目录.git,它就是Git的本地版本库

5.3 暂存区

暂存区(stage):一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

当在工作区时  撤销要用 "git checkout -- a.txt"
当在暂存区时  撤销要用 "git reset HEAD a.txt" 再 "git checkout -- a.txt"
当在版本区时  撤销要用 "git reset -hard HEAD^"

Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。  

我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用“git add”把文件纳入Git管理,实际是把本地文件修改添加到暂存区;
第二步是用“git commit”提交更改,实际上就是把暂存区的所有内容提交到当前分支 。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以commit就是往master分支上提交更改。

可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。一旦提交完后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的。即:nothing to commit (working directory clean)。

用“git diff HEAD -- filename”命令可以查看工作区和暂存区里面最新版本的区别。
新建过撤销未add: git checkout  -- 文件名
撤销已add未commit:先git  reset HEAD  文件名 再 git checkout -- 文件名
撤销已add已commit:       git reset –hard HEAD^  

所以,一定要明确,当前所操作的文件是在git的哪一个区,才能保证执行前进和回退的正确性

5.4 删除命令

① git rm a.txt
② git commit -m "delete a.txt" a.txt

即 在git中删除要执行两步操作,虽然删了,但是还得提交一下 

5.5 分支(查看+新建+切换+合并(分支名)+删除)

  • 5.5.1 查看分支

    • 命令:git branch

  • 5.5.2 新建分支
    • 命令:git branch 分支名

  • 5.5.3 切换分支
    • ① 命令: git checkout 分支名

    • ② 命令:git branch -b 分支名 :表示把分支和切换用一个命令完成

    而且,子分支会把master(主分支)里的内容,copy出同样的一份到自己的分支里,目的就是尽量不要在主分支中去操作

  • 5.5.4 合并分支
    • 命令:git merge 分支名

    【注】:在子线上干活,在主线上合并

  • 5.5.5 删除分支
    • 命令 git branch -d 分支名

    【注】:要保证子线跟主线的内容一致,所以每次合并完之后,删除子线,然后再新建个子线,把内容和主线永远保持一致

5.6 版本冲突

  • 子分支 在a.txt文件内增加数据

  • 主分支 在a.txt同一个位置增加不同的数据

  • 合并 发现存在冲突

  • 查看冲突 ,进行人工干预,将冲突的符号删除

  • 删除后的效果 (千万别把队友提交的数据删除了)

  • 加入版本库 然后提交

    这样冲突就解决了,就是手动把冲突删掉

三、GitHub 使用 与 git 协同办公

github是一个git项目托管网站,主要提供基于git的版本托管服务

github是一个基于git的代码托管平台, Git 并不像 SVN 那样有个中心服务器。目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上

1.GitHub的应用:

 第一步 注册+检查.ssh秘钥:由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息(No such file or directory表示第一次)

第二步 创建SSH Key: ssh-keygen -t rsa -C [email protected]成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。  

第三步 粘贴id_rsa.pub 的内容到 GitHub,注意粘贴的内容一定要恰好,不要多一个空格或者少一个空格
      操作依次为:登录GitHub → 头像位置找到settings → 选择左侧菜单的 SSH and GPG keys → 左上角 New SSH key → 起个名 粘贴公钥 

第四步 测试连通性: ssh -T [email protected]  

表示连接成功了,此时再回到你的 .ssh 文件 ,会多了一个名字为 known_hosts文件

第五步 本地 → github远程库

    现在的情景是,我在本地创建了一个OA项目后,我又想在GitHub创建一个OA项目,并且让这两个仓库进行远程同步
    5.1  先在本地新建好一个git项目  

    5.2  到Github上新建一个同名的空项目 (是同名  我这里后来又建了一个,忘记修改,都默认oa.txt即可)

    5.3  本地和github上的仓库进行关联
         命令:git remote add origin https://github.com/zzyybs/oa.git

    5.4 把本地库的内容推送到远程git push命令,实际上是把当前分支master推送到远程
        命令:git push -u origin master

        命令:git pull origin master : 是从远程库的master 下载到 本地库的 master

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

第六步 github远程库 → 本地

现在的情景是,我们从零开发,那么最好的方式是先创建远程库,然后从远程库克隆

6.1  登陆GitHub,创建一个新的仓库,名字叫OA2
6.2  远程库OK,下一步是用命令git clone克隆一个本地库
    Git clone [email protected]:xxx/oa2.git

7.远程交互模型 -- 上

7.Git交互模型-下

一般工作流程如下:

    1 克隆 Git 资源作为工作目录。

    2 在克隆的资源上添加或修改文件。

    3 如果其他人修改了,你可以更新资源。

    4 在提交前查看修改。

    5 提交修改。

    6 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

8.Fork

现在的情景是,用叉子把别人的东西(copy no cut)叉到你碗里~
就是把别人的项目clone一份,但是owner变成自己,这样你就可以在遵守Open source license的前提下任意修改这个项目了。

相当于你在原项目的主分支上又建立了一个分支,你可以在该分支上任意修改,如果想将你的修改合并到原项目中时,可以pull
request,这样原项目的作者就可以将你修改的东西合并到原项目的主分支上去,这样你就为开源项目贡献了代码,开源项目就
会在大家共同的努力下不断壮大和完善。

9.解决Git push时重复输入用户名密码
    C:\Users\admin目录下新建名字为_netrc的文件并编辑该文件写如下内容:
        machine github.com
        login 你的用户名
        password 你的密码

    比如:
        machine github.com
        login li4
        password 123

10.Git 常用命令小总结
   mkdir:         XX (创建一个空目录 XX指目录名)
   pwd:          显示当前目录的路径。
   git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
   touch           xx文件或者新建文件
   git add XX       把xx文件添加到暂存区去。
   git commit –m “XX”  提交文件 –m 后面的是注释。
   git status        查看仓库状态
   git diff  XX      查看XX文件修改了那些内容
   git log          查看历史记录
   git reset  --hard HEAD^
   cat XX         查看XX文件内容
   git reflog       查看历史记录的版本号id
   git checkout -- XX  把XX文件在工作区的修改全部撤销。
   git rm XX          删除XX文件
   git remote add origin https://github.com/zzyybs/testgit 关联一个远程库
   git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
   git clone https://github.com/arjrzhouyang/testgit  从远程库中克隆
   git checkout –b dev  创建dev分支 并切换到dev分支上
   git branch  查看当前所有的分支
   git checkout master 切换回master分支
   git merge dev    在当前的分支上合并dev分支
   git branch –d dev 删除dev分支
   git branch name  创建分支
   git remote 查看远程库的信息
   git remote –v 查看远程库的详细信息
   git push origin master  Git会把master分支推送到远程库对应的远程分支上  

 常用基本操作命令25个左右

原文地址:https://www.cnblogs.com/zongheng14/p/8987516.html

时间: 2024-08-30 09:15:37

Git 与 GitHub 入门级的相关文章

Github入门级介绍

Github入门级介绍 一.  简介 1.基本功能 作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法. 在GitHub,用户可以十分轻易地找到海量的开源代码. 二.  注册 1.  登录 https://github.com/ ,点击右上角的注册按钮,输入自己用户名.邮箱.密码等等. 2.  验证码,需要把一个小狗摆正 3.  选择免费/付费账号 一般选择免费,上传的代码会公开

Ubuntu Linux下通过代理(proxy)使用git上github.com

github.com,作为程序员的代码仓库,我们经常会用到.但有时候我们不能直接通过网络链接它,只能通过代理. 这里我有一台代理服务器,起初我以为在终端设置了代理环境就行了,其设置为在你的~/.bashrc里增加以下几行: export http_proxy="http://proxy-server:3128/" export https_proxy="http://proxy-server:3128/" export ftp_proxy="http://

Git与Github的连接与使用

下面继续,使用git 将项目上传到GitHub上 首先要有GitHub账号,这就不用说了,没有的先注册,地址:https://github.com 没有仓库的话,先新创建一个仓库 填写新仓库名称,备注信息.点击创建即可完成. 创建完成会显示如下界面.先放置不用管.后面会用到 因为本地Git仓库和GitHub仓库之间的传输是通过SSH加密传输的,GitHub需要识别是否是你推送,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送,所以需要配置ssh key. 1.创建SSH Key.在用

git和github

git: git是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具,其作用就是可以让你更好的管理你的程序,比如你原来提交过的内容,以后虽然修改了,但是通过git这个工具,可以把你原来提交的内容重现出来,这样对于你后来才意识到的一些错误的更改,可以进行还原,具体有关git的简介,我觉得有一个教程写的非常的详细,比较适合新手的学习,这是链接:Git教程 github:  这是一个网站,就是每个程序员自己写的程序,可以在github上建立一个网上的仓库,你每次提交的时候可

Windows环境下的git与github配置

有关git和github的废话就不必多说了,记录一下在windows下配置git和github环境的步骤 1. 首先,需要安装git,如下图所示: 2. 注册github账号 3. 生成SHH Key GitHub选择的默认通信方式是SSH,所以要先在Git里面生成SHH Key,打开Git Bash在其中输入如下命令: 之后一路next,即大功告成. 3. 前往系统用户文件夹复制SHH Key 具体路径为:C:\Users\{username}\.ssh 用记事本打开id_rsa.pub文件,

git 与github的使用

一.使用说明 1.Git与github的功能: Git是世界上最先进的分布式版本控制系统,也就是用来记录你的项目代码历史变更信息的工具:github就是用来存储你的代码以及变更信息的云端平台: 2.优点: 先进并且免费: 3.缺点: Github属于国外站点,国内上传速度较慢. 二.开发步骤说明 1.安装 去https://git-for-windows.github.io/ 下载git, 然后一直点击next安装. 2.配置git用户名与邮箱 在开始菜单里打开Git Bash,然后输入: gi

Git和Github简单教程(转)

这篇文章只挑一部分命令来讲,差不多够用就行的程度.如果需要其他命令,到时候再去其他地方了解就行了先在Github上写好再搬过来的:本文Github链接 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的关联 六.Github的其他介绍 七.一些可能碰到的问题 零.Git是什么 我才不告诉你嘞 一.Git的主要功能:版本控制 版本:想想你平时用的软件,在软件升级之后,你用的就是新版本的软件

关于Git和Github

英文原文:Ten Things You Didn't Know Git And GitHub Could Do Git 和 GitHub 都是非常强大的工具.即使你已经使用他们很长时间,你也很有可能不知道每个细节.我整理了 Git 和 GitHub 可能提高日常效率的 10 个常用技巧. GitHub 快捷键: t 和 w 在你的源码浏览页面,按t可以快速进入模糊文件名搜索模式: 在你仓库主页,按w可以快速进行分支过滤: 在任意 GitHub 页面中,按?展示当前页面可用的快捷键: 忽略空格:

git和github - 5:开源项目协作

1. 直接通过搜索进入到主页 2. 开一个新的分支(克隆一个版本放到我的用户下) 3. 打开github本地客户端,确保git和github是我本人的 git clone  https://github.com/pingguoski/drag.git  克隆到本地 4. 贡献者和作者通信 pull request — 给作者发请求 New pull request — Create pull request — Create pull request pull requests — 作者接收请求