git学习笔记

简介

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆,在本地机器上拷贝一个完整的Git仓库。
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

  • Git的功能特性:
    从一般开发者的角度来看,git有以下功能:
    1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
    2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
    3、在单机上自己创建的分支上提交代码。
    4、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
    5、生成补丁(patch),把补丁发送给主开发者。
    6、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

  • Git 与Github区别
    git 是一个软件,可以在 .git 文件夹里面维护你的历史代码。指定了 remote 链接和用户信息之后,git 可以帮你将提交过的代码 push 到远程的仓库或者将远程仓库的代码 fetch 到本地。
    github是一个基于git的项目托管平台,它提供了web界面,你可以在上面创建资源仓库来存放你的项目。在本地或服务器创建一个资源仓库通过shell命令或图形用户界面可以和远端的github进行项目同步更新,实现对项目的管理。

初步使用

  • 安装
$ git
xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.
$ git
usage: git [--version] [--help] [-C <path>] [-c name=value]          
             [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
             [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
             [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] 
             <command> [<args>]
These are common Git commands used in various situations:

在mac上输入git查看是否安装过,没有安装则会自动提示安装,安装后再次输入git就可以看到用法提示。

  • 配置
    安装后需要进行配置:
$ git config --global user.name pingsheng
$ git config --global user.email pingsheng_w@163.com
  • 创建版本库
$ pwd
/Users/twcn/pingsheng
$ git init
Initialized empty Git repository in /Users/twcn/pingsheng/.git/
$ ls
test1.txt test2.txt
$ git status
On branch master
Initial commit
Untracked files:  (use "git add <file>..." to include in what will be committed)
test1
test2
nothing added to commit but untracked files present (use "git add" to track)
$ git commit -m "first test"
[master (root-commit) 8451070] first test 
2 files changed, 3 insertions(+) 
create mode 100644 test1.txt 
create mode 100644 test2.txt
$ git status
On branch masternothing to commit, working directory clean
  • 创建与删除分支
$ git branch branch1
$ git checkout branch1
Switched to branch 'branch1'
$ git checkout -b branch2
Switched to a new branch 'branch2'
$ git branch -d branch1
Deleted branch branch1 (was 8451070).
  • 远程库操作
    首先是添加远程库,在GitHub上创建一个与本地git仓库同名的git仓库:

然后关联远程库:

但是在进行操作时候报错了:

$ git remote add origin git@github.com:ApplePP/pingsheng.git
$ git push -u origin master
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

查了资料后才知道是需要在github中添加ssh key。方法如下:

  • 查看是否已经有了ssh密钥:cd ~/.ssh如果没有密钥则不会有此文件夹,有则备份删除,生成密钥:
wangpingsheng% ssh-keygen -t rsa -C pingsheng_w@163.com
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/pswang/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/pswang/.ssh/id_rsa.
Your public key has been saved in /Users/pswang/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:07WN4yPhm4oKMIxwlwtfw8zUakEO0dey+c8q0180WN4 pingsheng_w@163.com
The key's randomart image is:
+---[RSA 2048]----+
|    o+o. .       |
|     Oo + .      |
|. o o B+ +  . .  |
|+. + oo.o. . B . |
|+.  o.  S.o = = E|
| o       o.o o . |
|  .      .ooo .  |
|   .   .o .+oo   |
|    ... .++o.    |
+----[SHA256]-----+
  • 添加密钥到ssh:
wangpingsheng% ssh-add
Identity added: /Users/pswang/.ssh/id_rsa (/Users/pswang/.ssh/id_rsa)

cat ~/.ssh/id_rsa.pub并将ssh key添加到github中

  • 下面进行测试:
wangpingsheng% ssh git@github.com
The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
PTY allocation request failed on channel 0
Hi ApplePP! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
  • 然后再执行git push
wangpingsheng% git push -u origin master
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 258 bytes | 0 bytes/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To git@github.com:ApplePP/pingsheng.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

就将代码上传至Github中:

小结

以前就知道git用来储存代码,并且理解到git的分支可以从开发主线上分离开来,然后在不影响主线的同时继续工作。今天的学习已经初步掌握了git的基本使用方法,但是在关联远程库时遇到了错误,师兄指导后又查了资料最后解决了问题,以后多加应用,希望能够逐渐熟练使用git。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • git学习笔记 声明 本文是本人学习Git过程中所做的笔记,以便日后查阅,文中多有错漏之处,不建议用作学习材料,文...
    sayonara_yoyo阅读 653评论 0 1
  • 简单的记录一下如何上传代码到Github上 上传本地代码到GitHub 第一步:建立git仓库 进入到一个目录里 ...
    weizujie阅读 567评论 0 1
  • 操作系统 window10学习来源: http://www.liaoxuefeng.com/wiki 常用 创建...
    hopevow阅读 757评论 0 17
  • ----------------- Git 学习 ------------------ Git 简介 Git...
    Junting阅读 2,199评论 0 3
  • 他的志愿是 在有生之年 把悲伤变成流行 然而志愿未达成 他就死了 死的时候还撑着伞。
    留子尧阅读 188评论 0 4