Git–基本使用啊
本文最后更新于 461 天前,其中的信息可能已经有所发展或是发生改变。

一:什么是Git

Git是目前世界上最先进的分布式版本控制系统(没有之一)

问:何为分布式?它和集中式相比有何特点?

答:如svn,集中式版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

 

 

 

那么分布式呢,就是每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

 

 

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

 

二:Git的基本使用方法

安装后右键鼠标出现有关Git的图标 如Git Bash ,就安装成功了

打开Git Bash,输入Git –version 可以查看当前版本

但是人在江湖呢,怎么能没有名号

在用git前,要先自报家门,否则代码不能提交

建议先去GitHub申请一个账号,用这个账号为Git的账号和邮箱

git config --global user.name #表示输入名字
git config --global user.email #联系方式

1.Git客户端代码管理

工作区(working directory)和版本库(repository)

在电脑里的一个任何文件夹都可以作为工作区,选择一个文件夹作为工作区,在Git命令行(git bash)里进入(cd)到选择的文件夹里面输入git.init,会生成一个工作区。

版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index )的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

 

srage为暂存区,master为本地仓库

问:如何将工作区的文件添加到暂存区呢?

答:

 git status # 查看本地区工作区,暂存区中文件的修改状态

从图中我们可以看到有一条红色和两条绿色得提示。

第一条绿色提示的前缀为newfile,表示为新增XXX文件。

第二条绿色提示得前缀为deleted,表示为删除了XXX文件。

红色提示得前缀为modified,表示为修改XXX文件。

橙色框框选的部分提示Changes tobe committed ,含义为:以下文件已存入暂存区,在提交到本地仓库时会将这些变更提交到本地仓库中。

红色框框选的部分提示Changesnot staged for commit , 含义为:以下文件未存入暂存区,在使用commit命令进行提交操作时,若未使用-a参数的话,则以下文件不会提交到本地仓库中。

原文链接:https://blog.csdn.net/u013374164/article/details/78831273

然后再

 git add 文件名.后缀 #添加文件到git的暂存区
 git add . #将所有文件添加到暂存区

确定好文件不需要修改后之后

 git commit -m "" #其中""里面是打这个版本文件的注释,因为如果版本过多,可能不知道之前版本都改了些什么

就可以把暂存区的内容迁到版本库

 

三:GitHub

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

有很多开源项目都可以在里面找到

在GitHub上创建好账号之后创建仓库,具体方法百度

在创建完仓库后,页面会出现以下内容:

 

1.在GitHub上进行团队协作

生成公私钥:在设置完账号邮箱之后,在 Git Bash上

 ssh-keygen -t rsa -C "你的邮箱" #可以生成SSH密钥,注意看提示的路径,在路径下找到该文件

将公钥 ssh.public,在GitHub上添加,添加方法百度

然后将团队成员添加到项目中去即可

 

2:版本回退

提交文件后

 git log --pretty=oneline #可以查看历史操作记录

如果我想回到其他版本:

 git reset --hard ^ #^表示的是版本号,一个^是退回到上一个版本两个是两个版本,或者使用版本ID

如何恢复:

 git reflog

 

3.分支管理

9.1分支有什么用?

在开发中,遇到这样的情况怎么办?
网站已有支付宝在线支付功能,要添加”微信支付”
修改了3个文件, wechat.php ,pay.php
刚做到一半,突然有个紧急. bug:支付宝支付后不能修改订单状态.你需要立即马上修改这个 bug,需要修改的文件是,ali.php,pay.php .

问题是:pay.php ,已经被你修改过,而且尚未完成.直接在此基础上改,肯定有问题.把 pay.php倒回去?那我之前的工作白费了.
此时你肯定会想:在做”微信支付”时,能否把仓库复制一份,在此副本上修改,不影响原仓库的内容.修改完毕后,再把副本上的修改合并过去.
好的,这时你已经有了分支的思想.
前面见过的master ,即是代码的主千分支,事实上,在实际的开发中,往往不会直接修改和提交到master分支上.而是创建一个dev分支,在dev分支上,修改测试,没问题了,再把 dev分支合并到master 上.
如果有了分支,刚才的难题就好解决了,如下图:

在做”微信支付”时,我们创建一个 wechat分支.
把 wechat 分支commit ,此时,master 分支内容不会变 因为分支不同.
当遇到紧急 bug 时,创建一个AliBug分支.
修复bug后,把 AliBug 分支合并到master 分支上.
再次从容切换到 wechat分支上,接着开发”微信支付”功能,开发完毕后,
把wechat分支合并到 master 分支上.

查看分支:

 git branch #查看服务器有哪些分支
 git branch 分支名 #创建分支
 git checkout 分支名 #切换该分支
 git checkout -b 分支名 #创建并切换到该分支
 vim 文件名.后缀 #创建文件

 

合并分支:

 git merge 分支名 #合并该分支到当前分支中

 

团队成员取出项目:

将远程仓库生成好的项目的SSH链接输入到Git Bash里,首先Git Bash先cd到目标路径再输入

 git clone 仓库地址

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇