Git使用学习

一、初识 git

1. 什么是git

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

2、分布式和集中式的区别

集中式:

    需要有台服务器安装服务端;

    每个想要和服务端通讯的终端都需要安装该软件客户端。

    每台计算机都通过客户端将服务端保存的内容checkout(检出)到本地,在代码基础上进行修改。可以通过commit提交自己的代码;或者通过update来更新本地代码。

    缺点:

         所有代码在服务端管理,容易发生丢失;

        公网中访问速度较慢。

分布式:

分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

从一般开发者的角度来看,git有以下功能:

从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上、在自己的机器上根据不同的开发目的,创建分支,修改代码,在单机上自己创建的分支上提交代码、在单机上合并分支、把服务器上最新的代码fetch下来,然后跟自己的主分支合并等。

优点:

适合分布式开发,强调个体。公共服务器压力和数据量都不会太大。速度快、灵活。任意两个开发者之间可以很容易的解决冲突。离线工作。

3. 好处:

快速,开源分布式版本控制系统,无中心仓库

源码备份

版本管理

协同工作

冲突解决

分支管理

里程碑管理

和github关联协同

二、 git下载和安装

1. git下载:

           git官网

2. git安装(部分图解说明)

三、 git命令

1.初始化配置(只需更新一次):

git config --global user.name "rk"

git config --global user.email rankang2018@163.com

配置信息的位置:~/.gitconfig

2. 新建仓库(可以有多个)

选择一个位置:右键:Git Bash Here

git init : 新建本地仓库
git status : 检测状态

3. 添加文件到暂存区,提交到仓库

git add file : 添加文件到仓库缓存区
git commit -m "message" : 提交到仓库并添加消息
git diff a.txt 查看工作空间和仓库的区别

4. 查看日志记录

git log a.txt :查看文件日志
git log --pretty=oneline a.txt :显示简要日志
git reflog a.txt :查看版本(指针变化)日志

5. 版本,回退和回撤

git reset --hard HEAD : 查看当前的版本信息
git reset --hard HEAD^ : 版本回退一个(回退多少步^^^)
git reset --hard HEAD~3 : 回退三步
git reset --hard df19b68 : 移动指针到指定操作
git checkout -- a.txt : 版本回撤(未add和commit)
git reset HEAD a.txt : 版本回撤(已add和未commit)

6. 文件删除(先删除再提交)

git rm -f b.txt
git commit -m "delete"

7. 分支

git branch : 查看分支
git branch dev : 创建分支
git checkout dev : 切换分支
git merge dev : 合并代码
git branch -d dev : 删除分支
git checkout -b test : 新建并切换 

主分支和从分支冲突:人工干预,手动合并。

git add a.txt
git commit

四、 GitHub

1.什么是github

gitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 git 作为唯一的版本库格式进行托管,故名gitHub。

gitHub 于 2008 年 4 月 10 日正式上线,除了 git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过 350 万,托管版本数量也是非常之多,其中不乏知名开源项目 Rubyon Rails、 jQuery、 python 等。

作为开源代码库以及版本控制系统, Github 拥有超过 900 万开发者用户。随着越来越多的应用程序转移到了云上, Github 已经成为了管理软件开发以及发现已有代码的首选方法。

如前所述,作为一个分布式的版本控制系统,在 Git 中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。在 GitHub,用户可以十分轻易地找到海量的开源代码

2. 注册github,创建ssh key,添加并测试连通

    1) 配置(建立连接)

              A. 生成ssh key : 

ssh-keygen -t rsa -C rankang2018@163.com

                         B. 在github添加公钥

                         在~/.ssh生成目录,里面有id_rsa, id_rsa.pub。

                         登录到github,在右上角图标下点击settings,点击 SSH and GPG keys,New SSH key, 在github上添加公钥(id_rsa.pub)

                        C. 测试连接状态

ssh -T git@github.com

    2) 本地新建,推送远程仓库

git remote add origin https://github.com/rankang666/test.git : 指定远程仓库
git push -u origin master : 推送
git pull origin master : 更新到本地仓库(pull 相当于 branch merge)

    3) 本地clone

git clone https://github.com/rankang666/zhao.git

    4) fork(让别人帮助做,新开辟一个分支,之后再合并即可)

3. TortoiseGit安装与使用

    1) 下载: 地址

    2) 安装

    3) 使用

             创建仓库(在进程中kill explorer.exe,再重启即可看到对勾图标或者重启)    

             添加提交本地仓库,查看日志,回退版本,

             创建分支,合并分支,冲突解决,

             远程推送(推送时必须是同一个仓库,推送到其他仓库会出现问题,可以参考git-push中的fast-forwards)和更新,clone

4. Egit使用

    1)  配置

    2)   查看ssh2

    3)  创建仓库

project右键 --> Team ---> ShareProject

    4)  添加到暂存区

              Project右键 ---> Team ---> Add to Index

     5)  提交到仓库

              Project右键 ---> Team --->Commit

     6)  与远程库交互

              Project右键 ---> Team --->Push

    7)  Pull从远程仓库

                 如果出错,可以尝试添加git config

[remote "origin"]
	fetch=+refs/heads/*:refs/remotes/origin/*
	url=https://github.com/rankang666/eclipse.git
	push=refs/heads/master:refs/heads/master
[branch "master"]
	remote=origin
	merge=refs/heads/master

    8)  同步

                  Project右键 ---> Sync WorkSpace --->

                   Local  ---> OutgoingMode --->Push/ 

                   Remove ---> IngoingMoode ---> Pull

    9)  Clone

                    WorkSpace右键 ---> Import ---> Git

    10)  冲突

???

     服务器更新,本地:Add ---> commit ---> push

     解决:

           Sync WorkSpace

          ---> Pull ---> 手动处理  ; ---> Add ---> commit ---> push

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

R_记忆犹新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值