zoukankan      html  css  js  c++  java
  • git 上传项目 到github

    好记性不如烂笔头。自己在平时做项目时一直都用的svn,对git不怎么了解,只是知道它跟svn一样是一个开源的版本控制工具,后来为了将自己整合的开源框架给分享给大家,所以才来研究一下git提交本地项目到github,虽然网上一大堆,但是自己没弄过,所有有空就研究一下怎么操作的,

    环境准备

    1.一个github帐号。这个大家可以去https://github.com/自己新建一个账户,在这个上面大家可以建立自己的项目托管仓库,可以是开源的也可以是私有的(要收费的)。

    2.git客户端Git-2.12.1-64-bit,github是服务端,所以我们要下载客户端上传自己的项目,就像svn一样也分客户端和服务端。

      最新的下载地址https://git-scm.com/downloads,大家可以根据自己操作系统去下载,本人这里是windows7 64。

      git客户端安装大家可以自行百度,安装完成后右击可以看到Git Gui ,Git Bash 等操作。

    创建github服务端仓库

    1.创建github仓库

    仓库名称,Repository name 是必须要写的,而且不能跟其他的重复,description 项目描述,可写可不写, 选择public开源,private是要收费的,最后一个initialize 我这个里没有勾选,然后点击create ,就创建好了,不过当前这个是空的,暂时不用去管,下面还要接着用呢
      

    Git的环境配置
      ·1.本地找一个盘符目录作为自己的本地仓库,我这里是用了D:project,我考了一个项目SpringMVC-Maven进去,待会就拿这个测试上传。

      

    在当前SpringMVC-Maven目录下,右击选择 Git Bash here,出现git命令行

      

    $ git init

     在命令行输入 git init  然后回车,当前文件夹会多一个.git文件夹

      

    2.在本地创建ssh key ,这是一个密钥的生成过程,文件的传输都是要通过公钥和私钥加密和解密的

    $ ssh-keygen -t rsa -C "your_email"

     在命令行输入 ssh-keygen -t rsa -C "yourEmail" (这个邮箱是你github上的 邮箱)然后敲三次回车,注意这里的-C 是大写 。

      

      看到这个界面表明你已经生成成功了,在生成过中系统要求输入密码,直接按回车表示不设密码,我这里就没有设置。

      我们进入提示的路径下查看ssh key文件。 我的电脑的地址是C:UsersAdministrator.ssh ,找到这个文件,看看是不是有这个文件,如果没找到说明想这种文件都被隐藏了,你要工具》文件夹选择项》查看 里面设置关于文件和文件夹显示的地方选择显示就行了。

    3.github 的setting上配置SSH Key。 将C:UsersAdministrator.sshid_rsa.pub里面的数据考到key里面

     

    添加完成后可以看到多一个黑色key,但是为什么是黑色说明还没使用,接下来我们要验证是否成功

    验证是否配置成功,在git bash下输入

    $ ssh -T git@github.com

    在回车后会有个提问Are you sure you want to continue connecting (yes/no)? ,你在后面写yes 然后回车

    连接成功你到key那个页面,刷新一下,会发现原来的黑色的key变成绿色了

    4.接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们

    $ git config --global user.name "your name"
    $ git config --global user.email "your_emai"

     我输入的界面

    5.添加远程地址,注意当前目录命令行的目录

    $ git remote add origin git@github.com:youname/yourRepoject.git

    youname/yourRepoject.git 复制 git@github.com:Breet1413/MySringMVC.git,切记要一样

    执行页面

    6.提交上传项目

    在本地新建一个README.md文件,内容可有可无,执行下面命令

    $ git add README.md
    $ git commit -m "first commit"

    执行结果

    git commit -m "<message>"只会提交添加到缓存区的文件(只提交添加的),后面是备注。

    git commit -a -m "<message>"  能提交修改过,但是没有添加到缓存区的文件(修改过的就能提交)

    上传到github 

    $ git push origin master

     

    $ git push origin master 上传本地当前分支代码到master分支(如果你有其他的分支,可以写其他的名字),这样就是想代码提交到github上了,接下来你可以重复这个步骤(主要是因为我这个本地仓库没选好),将其他目录文件上传上去

    最后一步

    这样就好了

    然后到github上刷新一下,我们刚才上传东西都在上面了了

     Git命令

    查看、添加、提交、删除、找回,重置修改文件
    
    git help <command> # 显示command的help
    
    git show # 显示某次提交的内容 git show $id
    
    git co -- <file> # 抛弃工作区修改
    
    git co . # 抛弃工作区修改
    
    git add <file> # 将工作文件修改提交到本地暂存区
    
    git add . # 将所有修改过的工作文件提交暂存区
    
    git rm <file> # 从版本库中删除文件
    
    git rm <file> --cached # 从版本库中删除文件,但不删除文件
    
    git reset <file> # 从暂存区恢复到工作文件
    
    git reset -- . # 从暂存区恢复到工作文件
    
    git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
    
    git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments"
    
    git ci --amend # 修改最后一次提交记录
    
    git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
    
    git revert HEAD # 恢复最后一次提交的状态
    
    
    查看文件diff
    
    git diff <file> # 比较当前文件和暂存区文件差异 git diff
    
    git diff <id1><id2> # 比较两次提交之间的差异
    
    git diff <branch1>..<branch2> # 在两个分支之间比较
    
    git diff --staged # 比较暂存区和版本库差异
    
    git diff --cached # 比较暂存区和版本库差异
    
    git diff --stat # 仅仅比较统计信息
     查看提交记录
    git log git log <file> # 查看该文件每次提交记录
    
    git log -p <file> # 查看每次详细修改内容的diff
    
    git log -p -2 # 查看最近两次详细修改内容的diff
    
    git log --stat #查看提交统计信息
     Git 本地分支管理
    查看、切换、创建和删除分支
    git br -r # 查看远程分支
    
    git br <new_branch> # 创建新的分支
    
    git br -v # 查看各个分支最后提交信息
    
    git br --merged # 查看已经被合并到当前分支的分支
    
    git br --no-merged # 查看尚未被合并到当前分支的分支
    
    git co <branch> # 切换到某个分支
    
    git co -b <new_branch> # 创建新的分支,并且切换过去
    
    git co -b <new_branch> <branch> # 基于branch创建新的new_branch
    
    git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
    
    git co $id -b <new_branch> # 把某次历史提交记录checkout出来,创建成一个分支
    
    git br -d <branch> # 删除某个分支
    
    git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
     分支合并和rebase
     git merge <branch> # 将branch分支合并到当前分支
    
    git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
    
    git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
    
    
    
    Git远程分支管理
    
    git pull # 抓取远程仓库所有分支更新并合并到本地
    
    git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并
    
    git fetch origin # 抓取远程仓库更新
    
    git merge origin/master # 将远程主分支合并到本地当前分支
    
    git co --track origin/branch # 跟踪某个远程分支创建相应的本地分支
    
    git co -b <local_branch> origin/<remote_branch> # 基于远程分支创建本地分支,功能同上
    
     Git远程仓库管理
    git remote -v # 查看远程服务器地址和仓库名称 
    git remote show origin # 查看远程服务器仓库状态 
    git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址 
    git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址) 
    git remote rm <repository> # 删除远程仓库
    创建远程仓库
    git clone --bare robbin_site robbin_site.git # 用带版本的项目创建纯版本仓库 
    scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上
     mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库 
    git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址 
    git push -u origin master # 客户端首次提交 git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track 
    git remote set-head origin master # 设置远程仓库的HEAD指向master分支
    git 命令

     整理这些只是为了以后方便使用,git命令是整理来自地址http://1ke.co/course/194。

    
    
    

    123

    本文为博主原创文章,未经博主允许不得转载
  • 相关阅读:
    第36课 经典问题解析三
    第35课 函数对象分析
    67. Add Binary
    66. Plus One
    58. Length of Last Word
    53. Maximum Subarray
    38. Count and Say
    35. Search Insert Position
    28. Implement strStr()
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/breet1413/p/6626748.html
Copyright © 2011-2022 走看看