CODE中创建项目和更新项目的方法

来源:互联网 发布:平安银行网络贷款 编辑:程序博客网 时间:2024/05/29 11:57

Git的工作流程

1.        与远程仓库同步

2.        修改文件

3.        查看变更

4.        载入变更

5.        提交载入的变更

6.        重复

7.        上传

管理公钥

公钥是CODE识别您的用户身份的一种认证方式,通过公钥,您可以将本地git项目与CODE建立联系,然后您就可以很方便的将本地代码上传到CODE,或者将CODE代码下载到本地了。

以下介绍生成公钥和管理公钥的方法。如果你是在windows系统下使用,需要先安装gitwindows客户端msysgit 然后运行 Git Bash, 在弹出的终端中输入下面提示的代码。

1. 生成公钥

首先检查本机公钥:

$ cd ~/.ssh

如果提示:No suchfile or directory 说明你是第一次使用git。如果不是第一次使用,请执行下面的操作,清理原有ssh密钥。

$ mkdir key_backup
$ cp id_rsa* key_backup
$ rm id_rsa*

生成新的密钥:

$ ssh-keygen -t rsa -C “您的邮箱地址

在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。

您可以在你本机系统盘下,您的用户文件夹里发现一个.ssh文件,其中的id_rsa.pub文件里储存的即为刚刚生成的ssh密钥。

2. 添加公钥

登录CODE平台,进入用户账户设置,点击右侧栏的“ssh公钥管理,点击添加公钥,将刚刚生成的公钥填写到公钥栏,并为它起一个名称,保存即可。

id_rsa.pub文件用ue打开后,将里面的内容拷贝到网站的公钥里即可。

 

注意:复制公钥时不要复制多余的空格,否则可能添加不成功。

3. 管理公钥

您也可以在账户设置”——“ssh公钥管理删除或者修改公钥。

创建一个新项目

登录CODE后在您的控制面板右上角,可以看到创建新项目的按钮,点击此按钮,在弹出的对话框中,按照提示填写项目名称、项目描述、项目主页等信息,点击创建即可生成一个新项目。

需要注意的是:

1)项目名称不允许使用中文,只允许使用字母、数字、点、下划线和中划线。

2)建议项目描述不要超过100字。更多的项目信息可以通过wiki添加。

3)如果您的项目有独立网站,请在项目主页处填写网站url,该地址将显示在您的项目名称的下方。没有可以不填写。

4)您可以设定项目为公开或私有,若设为公开,则其他用户都可以查看和派生您的项目文件。

5)默认使用README文件初始化项目。若您未勾选此项,将需要手动初始化。您可以在您的项目主页看到如下图所示的初始化向导,参照此向导在本地使用git命令初始化项目即可。

6)创建项目时填写的所有内容均可在项目设置中修改。

导入项目

如果您在其他网站(如GitHubGoogle code 等)已经存在一个Git托管的项目,可以直接将其导入。

点击创建新项目按钮,进入项目创建页,点击左侧栏的导入项目,填写已有项目的url和项目名称(一般默认为原有名称)、项目描述、项目主页等信息后,点击创建即可。

配置本地git环境

请从Git官网下载最新版的Git客户端。(注,请自备纵云梯)

安装完客户端后,需要完成以下的配置:

配置用户名

确认你在CSDN id,获取的方式是在登录后,进入my.csdn.net,在您的个人头像图片右侧,昵称信息上方的粗体字即为用户名。

获知用户名后,在命令行中输入:

git config--global user.name "CSDN id"

配置邮箱

配置的Git邮箱应与CSDN passport中注册邮箱一致,系统判断用户名是依靠邮箱信息:

git config--global user.email "CSDN passport中注册邮箱"

检查配置

最后检查user.nameuser.email是否配置正确:

git config-l

 

 

上传本地项目

没有使用Readme文件初始化的项目

使用此选项创建的项目,多数情况是用户已经在本地有了一个项目,想把此项目变成使用Git管理。

$ 进入此项目所在文件夹
$ git init
$ git add .
$ git commit -m “first commit”
$ git remote add origin <项目url, git@code.csdn.net:xxx/xxx.git>
$ git push -u origin master
这里会需要输入密码。

使用Readme文件初始化的项目

使用此选项创建的项目,用户需要首先在本地将网站上的项目Clone下来,才能进一步进行文件上传。

$ git clone <项目url, git@code.csdn.net:xxx/xxx.git>
$ 做些更新
$ git push

 

wiki

wiki是一个项目的知识管理系统,一般来说,用于存放项目的介绍、用户手册、功能说明等内容。

1.进入wiki

在一个项目主页点击右上角的“wiki”标签,可以进入该项目的wiki页面。

2.编辑wiki

进入wiki页面默认展示的是wiki主页。点击主页右上角的编辑按钮,可以重新编辑主页文字。

如果需要添加新的wiki页面,只需点击新页面按钮,即可新建一页wiki

Wiki支持markdown格式文本。您可以直接在编辑框内编写markdown代码,或者写好文字后使用编辑框上方提供的格式按钮排版。

编辑完成后,在正文下方的长方形文本框里填写本次编辑的备注,如果不填写,默认为某某更新了新页

3.wiki页面

点击wiki页面左侧的页面标签,可以查看所有的wiki页面。点击进入其中一个页面,即可对该页面进行编辑、删除、查看历史版本等操作。

<=""p="" style="margin: 0px; padding: 0px; max-width: 100%; height:auto; vertical-align: middle; border: 0px;">

4.wiki历史

您对wiki的每次操作CODE都会记录在案。点击wiki页的历史标签,将可以看到所有的操作记录,包括创建页面、编辑页面,每次的编辑说明等。

选中其中的任意两个页面,点击对比按钮,可以查看每次编辑的变动。

5.wikigit

每个项目的wiki数据作为一个git仓库来存放,因此,您可以像管理git项目库一样使用git命令对wiki数据进行克隆和访问。

Wiki数据可以线下编辑再推送到网站,编辑完成并提交后使用Push命令推送到网站。

Wiki 仓库的访问权限同Wiki所属项目的权限,无需额外设置。

点击wiki“git标签可以获取wikisshhttpgit地址。

<=""p="" style="margin: 0px; padding: 0px; max-width: 100%; height:auto; vertical-align: middle; border: 0px;">

 

 

 

Git学习教程(三):Git工作流程

2009-12-17 12:19:55

标签:教程 学习 工作流程 休闲 git

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fsjoy.blog.51cto.com/318484/244826

第三课   Git 工作流程

    与远程仓库同步,修改,载入(stage)和提交项目

 


现在你已经有一个git本地仓库,一切都配置完毕。然后该怎么办?
一般来说,跟其他的源码控制系统的工作流程没什么两样,唯一一个区别就是载入(stage)的过程。整个工作流程大致是这样(流程1):

·  与远程仓库同步

·  修改文件

·  查看变更

·  载入变更

·  提交载入的变更

·  重复

·  上传


这是最复杂的情况,如果你不与别人合作开发的话,就不需要上传到仓库中去(流程2):

修改文件
提交变更
* 重复

简单吧。要记得,git是分布式的,所以如果不是合作项目的话,实际上不需要提交到一个公共的共享服务器上--你可以像使用RCS一样,只用来追踪本地文件变更。下面,让我们先来看个简单的示例,紧接着再来看用git协作开发的实例。

简单示例

如果你想跟着做这个例子,请克隆这个项目:

$ git clonegit://github.com/schacon/simplegit

 


例子开始,按照流程2,我们首先要修改README文件,将自己添加到项目作者中去。所以我们修改这个文件。然后我们希望提交这个变更,所以我们运行'git commit -a' 命令。 -a 的意思是告诉git先将变更了的文件先载入(stage),然后提交-我们后面会通过'staging area'命令实现,但是现在运行 'git commit -a' 命令,效果跟在SVN中使用'commit'命令一样。

$ git commit -a

执行完之后,一个提交信息的提示会出现在编辑器中(这里$EDITOR环境变量或'core.editor'这两个git配置变量的默认值都是vim)类似下面这样的内容:

_
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch main
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
# modified:   README
#                                                                      
~                                                                                      
~                                                                                      
".git/COMMIT_EDITMSG" 9L, 253C

输入一些提交的信息,譬如"added myself to theREADME as an author"然后退出。

vim操作提示:

按下I,o,a进入编辑模式,编辑完毕按Esc,输入:wq保存退出。

然后会看到这样的提示:

[master]: created 5896d4d: "addedmyself to the README as an author"
 1 files changed, 2 insertions(+), 1 deletions(-)

 

显示我们刚刚输入的提交信息,并且有一组关于这次提交项目中文件变更的统计数字。同时还给我们一个提交的校验和,'5896d4d',这个校验和可以用来日后确切的查看这次提交的细节。

这就是简单用例。修改文件,'git commit -a',重复

协作开发示例

现在,我们来介绍一个复杂点的实例,这次我们使用远程仓库,将项目上传上去,从而跟其他的开发者一起协同工作。同时,我们会介绍staging area

如果你会从远程仓库中克隆项目,那么与远程仓库项目同步也是相当简单的--只需要执行'git pull'.如果是远程仓库项目没有变化,也就是说其他的开发者没有对项目进行变更,会显示这样的信息:
Already up-to-date.

相反,执行这条命令之后会将你上次同步之后远程仓库中的变更同步到本地项目中,并且git会合并这些新的变更:

$ git pull
Updating c264051..b04dc3d
Fast forward
 lib/simplegit.rb |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

例子开始,重新克隆远程仓库中的项目,修改README文件和lib/simplegit.rb文件(不要执行git commit -a)。现在你可以使用'git status'命令来查看工作目录发生了什么变更:

$ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discardchanges in working directory)
#
modified:  README
modified:  lib/simplegit.rb
#
no changes added to commit (use "git add" and/or "git commit-a")

我们看到,有两个文件是在"changed but notupdated"段落中出现 ,这意味着这两个文件还没有载入(unstaged). 如果现在我们提交,什么也不会发生。也就是说文件必须先载入(stage),然后才能提交。

所以,我们先来载入(stage) 文件,git中使用'git add'命令不仅可以开始追逐文件而且可以对他们载入stage变更。所以让我们载入(stage) README文件的变更,然后再来查看一下状态。

$ git add README
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
# modified:   README
#
# Changed but not updated:
#   (use "git add <file>..." to update what will becommitted)
#   (use "git checkout -- <file>..." to discardchanges in working directory)
#
modified:  lib/simplegit.rb

现在'lib/simplegit.rb'文件还是未载入(unstaged), 但是README文件现在已经到了'changes to be committed'段落中-它几经载入(stage)了。现在如果我们运行提交命令(不要-a,这个会自动stage所有的东西),只有这个文件会被提交-而simplegit.rb依然是unstaged。这时,我们使用-m选项来执行'git commit',这样后面跟上字符串表示这次提交的信息。

$ git commit -m 'updated the README'
[master]: created 14bb3c6: "updated the README"
 1 files changed, 1 insertions(+), 2 deletions(-)

如果现在再执行'git status',我们会看到stage之后的文件现在已经提交了,只剩下了unstaged的'simplegit.rb'文件。

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changed but not updated:
#   (use "git add <file>..." to update what will becommitted)
#   (use "git checkout -- <file>..." to discardchanges in working directory)
#
modified:  lib/simplegit.rb
#

现在我们可以stage并且提交这个文件:

$ git commit -a -m 'added a staging commandto the library'
[master]: created bbaee85: "added a staging command to the library"
 1 files changed, 4 insertions(+), 0 deletions(-)
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
nothing to commit (working directory clean)

现在我们已经将两次提交的变更都搞定了,而且加了提交信息,可以让我们的合作伙伴很容易理解我们做的变更。经过最后一次提交,我们看到'git status'执行之后显示我们的工作目录clean了(同时提示我们现在的分枝上有两个提交还没有上传)

所以,现在我们将这些变更上传到服务器端与我们的合作伙伴分享,前提是我们有上传的权限,(如果没有上传的权限,我们可以在网络上创建一个自己的git仓库,将其上传),然后让朋友下载。

运行'git push'会将我们的变更上传到服务器。

$ git push
Counting objects: 11, done.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (7/7), 744 bytes, done.
Total 7 (delta 3), reused 0 (delta 0)
To git@github.com:schacon/simplegit.git
   b04dc3d..bbaee85  master -> master


到目前为止,我们看到了新数据都已经上传完毕,服务器上的主分支也已经更新了。现在我们可以复习一下这整个的过程,让我们可以更加熟练的将git应用到我们的项目中去。

 


0 0
原创粉丝点击