github入门

 

一、先了解

相比CVS\SVN优势:

- 支持离线开发,离线Repository
- 强大的分支功能,适合多个独立开发者协作
- 速度快

github 本地有仓库,储存着所有repository的历史;

本地有缓冲区,指向你最近一次提交后的结果,改动一个文件,就是拿你改动的文件和缓冲区的文件进行 进行差异化比较 。

二、注册与安装
1、注册 https://github.com/
3、安装完成后,桌面出现两个图标
 
4、登录
5、在Git Shell中设定本地用户信息
git config --global user.name "Your Name Here"
# Sets the default name for git to use when you commit
git config --global user.email "your_email@example.com"
# Sets the default email for git to use when you commit
三、初始化和建立项目
1、在网站上创建一repository
2、本地通过命令行创建
     
    $ makdir ~/hello-world    //创建一个项目hello-world
    $ cd ~/hello-world       //打开这个项目
    $ git init             //初始化 
    $ touch README //创建说明文件
    $ git add README        //更新README文件
    $ git commit -m 'first commit'     //提交更新,并注释信息“first commit”
  $ git remote add origin https://github.com/defnngj/Hello-World.git  //连接远程github项目
    $ git push -u origin master     //将本地项目更新到github项目上去
 
具体如下
Windows PowerShell
版权所有 (C) 2009 Microsoft Corporation。保留所有权利。 > mkdir ~/Test123 目录: C:\Users\sprying Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2013/8/23 8:01 Test123 > git init
  Initialized empty Git repository in C:/Users/sprying/Documents/GitHub/.git/
> touch README
> git add README
> git commit -m 'first commit'
  [master (root-commit) 730016b] first commit
  1 file changed, 0 insertions(+), 0 deletions(-)
  create mode 100644 README
> git remote add origin https://github.com/sprying/Test123.git
> git remote -v
  origin https://github.com/sprying/Test123.git (fetch)
  origin https://github.com/sprying/Test123.git (push)
> git push origin master
  Counting objects: 3, done.
  Writing objects: 100% (3/3), 206 bytes | 0 bytes/s, done.
  Total 3 (delta 0), reused 0 (delta 0)
  To https://github.com/sprying/Test123.git
  * [new branch] master -> master
 
四、Ps
1、可以通过图形化界面来查看历史
 
2.下载一个repository相关命令
mkdir jekyll_demo
cd jekyll_demo
git init
 
git checkout --orphan gh-pages
 

Cloning into 'XXXX'...
remote: Counting objects: 29510, done.
remote: Compressing objects: 100% (8313/8313), done.
remote: Total 29510 (delta 21676), reused 28255 (delta 20584)
Receiving objects: 100% (29510/29510), 14.78 MiB | 157.00 KiB/s, done.
Resolving deltas: 100% (21676/21676), done.
 
git add helloworld.naxsu 进行添加到本地缓冲区
git add . 添加当前目录下的所有文件
git add *.c 添加以 .c 为后缀的文件
git add index.jsp        添加指定文件
 
git commit -m 'first commit' 提交到本地仓库
 
创建一个指向你repository的origin
 
 
3、 相关命令详细中文说明
-------2013年9月13日0:36:05添加-----

1) 远程仓库相关命令

查看远程仓库:$ git remote -v

添加远程仓库:$ git remote add [name] [url]

删除远程仓库:$ git remote rm [name] 如 git remote rm origin 删除远程的origin连接

修改远程仓库:$ git remote set-url --push [name] [newUrl]

拉取远程仓库:$ git pull [remoteName] [localBranchName]

推送远程仓库:$ git push [remoteName] [localBranchName]

* 如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:

$ git push origin test:master         // 提交本地test分支作为远程的master分支

$ git push origin test:test              // 提交本地test分支作为远程的test分支

2)分支(branch)操作相关命令

查看本地分支:$ git branch

查看远程分支:$ git branch -r (如果还是看不到就先 git fetch origin 先)

创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支

切换分支:$ git checkout [name]

创建新分支并立即切换到新分支:$ git checkout -b [name]

直接检出远程分支:$ git checkout -b [name] [remoteName] (如:git checkout -b myNewBranch origin/dragon)

删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项

合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并

合并最后的2个提交:$ git rebase -i HEAD~2 ---- 数字2按需修改即可(如果需提交到远端$ git push -f origin master 慎用!)

创建远程分支(本地分支push到远程):$ git push origin [name]

删除远程分支:$ git push origin :heads/[name] 或 $ git push origin :[name]

* 创建空的分支:(执行命令之前记得先提交你当前分支的修改,否则会被强制删干净没得后悔)

$ git symbolic-ref HEAD refs/heads/[name]

$ rm .git/index

$ git clean -fdx

3)版本(tag)操作相关命令

查看版本:$ git tag

创建版本:$ git tag [name]

删除版本:$ git tag -d [name]

查看远程版本:$ git tag -r

创建远程版本(本地版本push到远程):$ git push origin [name]

删除远程版本:$ git push origin :refs/tags/[name]

合并远程仓库的tag到本地:$ git pull origin --tags

上传本地tag到远程仓库:$ git push origin --tags

创建带注释的tag:$ git tag -a [name] -m 'yourMessage'

4) 子模块(submodule)相关操作命令

添加子模块:$ git submodule add [url] [path]

如:$ git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs

初始化子模块:$ git submodule init  ----只在首次检出仓库时运行一次就行

更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下

删除子模块:(分4步走哦)

1) $ git rm --cached [path]

2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉

3) 编辑“ .git/config”文件,将子模块的相关配置节点删除掉

4) 手动删除子模块残留的目录

5)忽略一些文件、文件夹不提交

echo "class1" > class1.class :添加元素
echo "java1" > java1.java
echo "class1.class" >.gitignore :添加东东到提交忽视文件定义中
vim .gitignore :添加自身到gitignore
cat .gitignore :展示文件内容
class1.class
.gitignore
 
或者

在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如

target

bin

*.db

 
6)查看历史记录
git log :显示所有的提交( commit )记录
git whatchanged :显示的信息比 git-log 更详细一些,可以显示具体的文件名
 
7)其它命令
查看相关设置
git config --list
git config user.name 
 
获取对config命令的手册页帮助
git help config
 
 
echo "hello world" >> helloworld.naxsu
ls *.naxsu
helloworld.naxsu
 
git status
 
 后悔药

删除当前仓库内未受版本管理的文件:$ git clean -f

恢复仓库到上一次的提交状态:$ git reset --hard

回退所有内容到上一个版本:$ git reset HEAD^

回退a.py这个文件的版本到上一个版本:$ git reset HEAD^ a.py

回退到某个版本:$ git reset 057d

将本地的状态回退到和远程的一样:$ git reset –hard origin/master

向前回退到第3个版本:$ git reset –soft HEAD~3

4、如何将本地一文件夹(已有许多文件)加入github控制
打开shell
git init
git add . 
git commit -m ''
git checkout -b gh-pages //新建分支并设置为当前
git branch-r //查看远程的分支,remote命令已执行,但还是未空,直到push之后
git remote //查看远程
     // origin 发现只显示这个,且无法删除,查了原因,貌似全局设置文件etc/gitconfig有问题,我回避后如下设定,
git remote rm origin // 报错 could not remove config section 'remote.origin'。既然无法删除,就只有在已有基础上修正了。
git remote set-url
git remote -v //查看远程name和url
git push origin gh-pages
 
至于远程上,只是建立了空的repository
如果里面有内容,先要拿下来
git pull origin gh-pages 再上传
 

------------------------------------关于可能出现的错误----------------------------------

1.在执行

git remote addorigin git@github.com:defnngj/hello-world.git

错误提示:fatal: remote origin already exists.

解决办法:

git remote rm origin

如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'.

我们需要修改gitconfig文件的内容

找到你的github的安装路径,如C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc

找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

git 相关的更多相关文章

  1. Git相关安装包打包下载

    Git相关软件偶尔需要***才能下载,故分享于此 1.Git-2.15.0-64-bit.exe 2.TortoiseGit-2.5.0.0-64bit.msi 3.TortoiseGit-Langu ...

  2. git相关整理

    title: git相关整理 toc: false date: 2018-09-24 20:42:55 git merge 和 git merge --no--ff有什么区别? git merge命令 ...

  3. git 相关流程和报错解决

    git 相关流程: 预先配置: gitroot $ git config user.name XXXgitroot $ git config user.email XXX@XXX.com git re ...

  4. git相关操作

    git相关命令 基本操作 git init git add xxx git commit -m "first commit" git tag -a V1.0 -m '我的标签' g ...

  5. Git相关操作汇总

    git clone: 正如上图,当我们打开终端的情况下,默认我们所在的目录是在/home/shiyanlou的,大家可以在终端输入以下命令把目录切换到桌面cd  /home/Desktop这个时候输入 ...

  6. git 相关学习

    1.Git 的一些快捷键 第一次创建本git 本地仓库 :: git  init  //在本地创建一个 Git仓库 :要在该目录下 第一次 要配置GitHub 的 账号和邮箱: git config ...

  7. Git相关内容

    先聊一点关于gitlab的内容和github的内容 Gitlab和GitHub,都是我们可以存放代码库的地方.不过Gitlab可以免费的存储私人代码,GitHub需要花钱才能够存储私人代码库,不过我想 ...

  8. Git相关命令教程

    一.在GitHub上创建新项目 (1)在GitHub首页 “New repository”,创建新版本库“test” (2)在本地使用GitBash,将repository clone到本地 git ...

  9. git相关操作。

    之前只会用图形端的GIT中,命令行的比较陌生,整理下,供自己以后参考 关键的名词: 工作区:工作区 Index / Stage:暂存区 仓库:仓库区(或本地仓库) 远程控制:远程仓库 到项目目录下gi ...

随机推荐

  1. 使用python 提取网页的特定数据转

    http://blog.csdn.net/nwpulei/article/details/7272832

  2. android studio 开启genymotion 出现"failed to create framebuffer image"

    出现错误 Unable to start the virtul device To start virtual devices, make sure that your video card supp ...

  3. OutputCache 如何使用本地缓存 【转】

    注意!ASP.NET MVC 3 的一个 OutputCache 问题   在用 ASP.NET MVC 3 重写博客园网站首页时,特地留意了一下这个缓存问题,通过这篇博文分享一下. 在 ASP.NE ...

  4. Opencv 2.4.10 +VS2010 项目配置记录

    http://blog.csdn.net/scottly1/article/details/40978625?utm_source=tuicool 因为工作需要,小小的研究一下Opencv的图像处理, ...

  5. C++ Primer----智能指针类 2

    指针带给了 C++巨大的灵活性,然而同样也带来无数的问题,悬挂指针,内存泄漏等. int *pInt = new int(1); // Do not forget delete pInt; 智能指针就 ...

  6. CSS3特性 盒模型 动画

    转发自0101后花园 CSS3中的动画功能分为Transitions和Animations功能,这两种功能都可以通过改变CSS中的属性值来产生动画效果. 一.Transitions 语法:transi ...

  7. 详解Objective-C runtime

    感谢翻译小组成员wingpan热心翻译.本篇文章是我们每周推荐优秀国外的技术类文章的其中一篇.如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加入我们的翻译小组(联系qq:2408167315 ...

  8. xmind的第八天笔记

  9. cache是什么文件?

    通常人们所说的Cache就是指缓存SRAM. SRAM叫静态内存,"静态"指的是当我们将一笔数据写入SRAM后,除非重新写入新数据或关闭电源,否则写入的数据保持不变. 由于CPU的 ...

  10. 关于 MaxScript 获取所有贴图

    相关内容记录在官方文档 BitmapTexture : TextureMap 中 fn allUsedMaps = ( sceneMaps = usedMaps() for m in meditmat ...