Git使用笔记

1、第一次使用github

1)github注册账号,网址:https://github.com/
使用邮箱注册账号

先不要创建版本库

 

2)安装git

Linux请参考网上教程,这里演示windows操作。

实际命令行操作基本是一样的。

 msysgit 是Windows版的Git,从http://msysgit.github.io/下载,然后按默认选项安装即可。

官方下载比较慢,可以使用第三方下载点:msysgit_1.9.4.0_XiaZaiBa.zip

安装完成后,在开始菜单里找到"Git"->"Git Bash",蹦出一个类似命令行窗口的东西,就说明Git安装成功!

说明:git命令操作和Linux命令差不多,很多命令可以直接使用,比如cd,vi

 

3)安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

 

4)创建SSH Key

在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

会让你输入 .ssh/id_rsa 文件的路径,默认即可
然后输入新密码,确认即可:

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/YJC/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/YJC/.ssh/id_rsa.
Your public key has been saved in /c/Users/YJC/.ssh/id_rsa.pub.
The key fingerprint is:
xx:80:50:0f:25:xx:c8:f1:3c:fe:5e:90:be:9d:d5:xx

注意:

如果由于其他原因导致git提交时提示 Could not create directory '//.ssh'. ,可以删除之前的id_rsa文件,重新进行:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
$ ssh-keygen -t rsa -C "youremail@example.com"

windows上id_rsa文件位于用户主目录:C:/Users/YJC/.ssh/

id_rsa
id_rsa.pub

当提示 Enter file in which to save the key (//.ssh/id_rsa): 默认可以为空,如果不行,输入:C:/Users/YJC/.ssh/id_rsa

当提示

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

输入一个密码即可。下次提交代码会让你输入密码。

 

5)登陆GitHub,打开"Account settings","SSH Keys"页面:
然后,点"Add SSH Key",填上任意Title,在Key文本框里粘贴 id_rsa.pub 文件的内容:

  为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
  当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

 

6)创建本地版本库(我选的D盘)



$ cd /d/phpsetup/www/git/
$ mkdir fhyblog
$ cd fhyblog
$ pwd

/d/phpsetup/www/git/fhyblog

7)通过 git init 命令把这个目录变成Git可以管理的仓库:

$ git init

Initialized empty Git repository in /Users/52fhy/fhyblog/.git/

瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个 .git 的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

 

8)在本地版本库fhyblog里放入一些代码或文件

  我放了src目录和一个readme.txt文件

 

9)进入版本库目录:

$ cd /d/phpsetup/www/git/fhyblog/

 

10)更新本地版本库(.指当前所有目录及文件)

$ git add .

当然,如果你仅仅是提交一个文件,可以这样写

$ git add readme.txt

更新一个目录这样写:

$ git add src/

此时还没有真正提交到版本库,只是放在暂存区。提交请继续往下看:

 

11)执行更新操作:

$ git commit -m "相关说明"

[master 91115af] .
1 file changed, 53 insertions(+)
create mode 100644 "\345\215\207\347\272\247\346\227\245\345\277\227.txt"

 

12)更新至远程(Github):

要关联一个远程库,使用命令 

$ git remote add origin git@github.com:yourname/yourgit.git 

关联后,使用命令 

git push -u origin master

进行第一次推送master分支的所有内容;

所以,远程github上确保你的版本库是空的,否则你在这一步可能会不成功。

此后,每次本地提交后,只要有必要,就可以使用命令 git push origin master 推送最新修改;

 

$ git push origin master

Warning: Permanently added the RSA host key for IP address '192.30.252.129' to the list of known hosts.
Enter passphrase for key '/c/Users/YJC/.ssh/id_rsa':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 292 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To git@github.com:52fhy/fhyblog.git
efe4969..91115af master -> master
Branch master set up to track remote branch master from origin.

Admin@YJC-PC /d/phpsetup/www/git/fhyblog (master)

如果完成到这里,恭喜你!你已经有了本地和远程版本库了。

2、再次使用git
以后本地版本库里有更新,使用 git add  添加,使用命令 git commit 提交。
更新至远程使用命令 git push origin master 推送

3、从远程更新至本地版本库
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

$ git clone git@github.com:52fhy/fhyBlog.git

Cloning into 'fhyBlog'...
Enter passphrase for key '/c/Users/YJC/.ssh/id_rsa':
remote: Counting objects: 284, done.
remote: Compressing objects: 100% (238/238), done.
remote: Total 284 (delta 28), reused 283 (delta 27)R
Receiving objects: 94% (267/284), 644.00 KiB | 12.00 KiB/
Receiving objects: 100% (284/284), 676.81 KiB | 12.00 KiB/s, done.
Resolving deltas: 100% (28/28), done.
时间: 2024-08-02 09:26:48

Git使用笔记的相关文章

Git 学习笔记

  Git/'ɡɪt/,  Linus的第二个伟大作品.Git这个词有点儿意思,Linus自嘲说 "I'm an egotistical bastard,  and I name all my projects after myself. First Linux, now Git. "  感叹我生不逢时,错过了版本控制的"史前黑暗"时代,刚刚接触版本控制,Linus就站在前边,笑嘻嘻的说:"版本控制? 什么是版本控制 .. ".真希望Linus身

Git学习笔记(二)

基本命令:  查看提交历史      git log  版本回退            git reset  查看每一次的命令 git reflog     具体步骤:   添加一句话到readme.txt中,并提交到Git库中.              .                readme.txt在Git中目前有三个版本: 按提交时间先后顺序排列如下: 第一个:wrote a readme.txt 第二个:add distrubuted 第三个:add difficulties 如

Git基础笔记(便查阅)

起步 三种状态 三种状态 已修改 modified 已暂存 staged 已提交 commited 三种工作区域 本地仓库 woking directory 暂存区域 staging area git工作目录 git directory 配置 权限的作用范围 所有用户 etc/gitconfig git config --system .. 当前用户 ~/.gitconfig git config --global .. 当前文件 .git/config git config .. 用户信息 g

git svn 笔记

git svn主要使用流程: 从svn仓库初始化成本地git仓库: [cce lang="bash"] git svn clone -s SVN_URL [/cce] 注意:SVN_URL是svn仓库的基础目录,不包含trunk,branches这些目录.这里加上一个-s是–stdlayout的缩写,标识svn地址是符合标准svn目录结构的,既有SVN_URL/trunk,SVN_URL/branches,SVN_URL/tags这些目录(当然后面两个目录是非必须的,如果没有,后续拉分

GIT学习笔记(一)

由于之前配过CSV使用过SVN,刚接触GIT时不能区分GIT与前类版本控制系统之间的区别,使用对SVN的了解来试图直接使用GIT.但其实两者之间后较大的区别,他们功能相同,实现方式却差异很大. 1.部署差异: 1.1.集中式版本控制系统  SVN与CSV同属于集中式版本控制系统,所谓集中式即进行版本控制权限在服务器上,服务器保存所有文件的修订版,各开发终端只是将服务器上最新的修订版取回,然后提交更改后的版本.终端并不保存文件的所有修订版.  示意图:       这种方式对系统稳定性要求较高,因

Git学习笔记

创建版本库 1 初始化一个Git仓库:git init. 2 添加文件到Git仓库,分两步: 第一步,git add <file>,可反复使用,也可一次添加多个文件. 第二部,git commit -m "commit description",完成. 3 掌握工作区的状态:git status. 4 如果git status告诉你有文件被修改过,用git diff可以查看修改内容. 时光机穿梭 版本回退 1 HEAD指向的版本就是当前版本,Git允许我们再版本的历史之间穿

安装 Git的方法之git入门笔记

gif入门基础 那么,简单地说,Git 究竟是怎样的一个系统呢?请注意,接下来的内容非常重要,若是理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余.在开始学习 Git 的时候,请不要尝试把各种概念和其他版本控制系统(诸如 Subversion 和 Perforce 等)相比拟,否则容易混淆每个操作的实际意义.Git 在保存和处理各种信息的时候,虽然操作起来的命令形式非常相近,但它与其他版本控制系统的做法颇为不同.理解这些差异将有助于你准确地使用 Git 提供的各种工具. 直接

git学习笔记之撤消操作

任何时候,你都有可能需要撤消刚才所做的某些操作.接下来,我们会介绍一些基本的撤消操作相关的命令.请注意,有些撤销操作是不可逆的,所以请务必谨慎小心,一旦失误,就有可能丢失部分工作成果. 修改最后一次提交 有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了.想要撤消刚才的提交操作,可以使用 --amend 选项重新提交:     $ git commit --amend 此命令将使用当前的暂存区域快照提交.如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明

git的学习笔记整理

Git学习较好的网址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001373962845513aefd77a99f4145f0a2c7a7ca057e7570000 开源中国的git站点:http://git.oschina.NET/oschina/git-osc/wikis/Home   msysgit是Windows版的Git,从http://msysgit.githu