git

Git入门指南

一,安装git

用ssh-keygen生成秘钥

ssh-keygen -t rsa -C "your_email@example.com"
cat ~/.ssh/id_rsa.pub

二,配置git

git config命令

若使用 git config --global 选项,用户目录下的配置文件(~/.gitconfig 文件)只适用于该用户。

若使用 git config --system 选项,系统中的文件(/etc/gitconfig 文件)对所有用户都普遍适用的配置。

第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@ example.com
要检查已有的配置信息,可以使用 git config --list 命令查看。

三,开始项目

有两种取得 Git 项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来。

(1)在工作目录中初始化新仓库

要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录里,执行:

$ git init
初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

$ git add *.c
$ git add README
$ git commit -m 'initial project version'
(2)从现有仓库克隆

$ git clone git://github.com/schacon/grit.git
这会在当前目录下创建一个名为“grit”的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。如果进入这个新建的grit 目录,你会看到项目中的所有文件已经在里边了,准备好后续的开发和使用。如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:

$ git clone git://github.com/schacon/grit.git mygrit
唯一的差别就是,现在新建的目录成了 mygrit,其他的都和上边的一样。

之后,我们修改项目,记录每次更新到仓库,要确定哪些文件当前处于什么状态,可以用 git status 命令。


(3)跟踪新文件
使用命令 git add 开始跟踪一个新文件。所以,要跟踪 README 文件,运行:

$ git add README/文件夹
git add 是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等

(4)提交更新

每次准备提交前,先用git status 看下,是不是都已暂存起来了,然后再运行提交命令 git commit:

$ git commit -m "Story182: Fix benchmarks for speed"
尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候这么做略显繁琐。Git 提供了一个跳过使用暂存区域的方式,只要在提交的时候,给 git commit 加上-a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤:
$ git status
# On branch master
#
# Changed but not updated:
#
#   modified:   benchmarks.rb
#
$ git commit -a -m 'added new benchmarks'
[master 83e38c7] added new benchmarks
 1 files changed, 5 insertions(+), 0 deletions(-)

所以,git commit -a -m "xxx" = git add + git commit -m "xxx"

(5)把远程新代码 更新 到本地代码

git fetch + git merge = git pull

(6)如果新增了代码,又没有提交,而且又想回退到原先的工作目录

git stash          (就是git add的反向操作)

四,管理远程库

以上这些操作都是对于本地库进行的,以下才是与远程库打交道。

要查看当前配置有哪些远程仓库,可以用 git remote 命令,

$ git remote
origin
也可以加上 -v 选项(译注:此为 --verbose 的简写,取首字母),显示对应的克隆地址:

$ git remote -v
origin  git://github.com/schacon/ticgit.git
(1)添加远程仓库

要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]:

$ git remote
origin
$ git remote add pb git://github.com/paulboone/ticgit.git
$ git remote -v
origin  git://github.com/schacon/ticgit.git
pb  git://github.com/paulboone/ticgit.git
现在可以用字串 pb 指代对应的仓库地址了。比如说,要抓取所有 Paul 有的,但本地仓库没有的信息,可以运行 git fetch pb:

$ git fetch pb
remote: Counting objects: 58, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 44 (delta 24), reused 1 (delta 0)
Unpacking objects: 100% (44/44), done.
From git://github.com/paulboone/ticgit
 * [new branch]      master     -> pb/master
 * [new branch]      ticgit     -> pb/ticgit
现在,Paul 的主干分支(master)已经完全可以在本地访问了,对应的名字是 pb/master,你可以将它合并到自己的某个分支,或者切换到这个分支,看看有些什么有趣的更新。

(2)推送数据到远程仓库

实现这个任务的命令很简单: git push [remote-name] [branch-name]。如果要把本地的 master 分支推送到origin 服务器上(再次说明下,克隆操作会自动使用默认的 master 和 origin 名字),可以运行下面的命令:(-f选项:强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容)

$ git push origin master

只有在所克隆的服务器上有写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。如果在你推数据前,已经有其他人推送了若干更新,那 你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送。

(3)查看远程仓库信息

我们可以通过命令 git remote show [remote-name] 查看某个远程仓库的详细信息,比如要看所克隆的 origin 仓库,可以运行:

$ git remote show origin
* remote origin
  URL: git://github.com/schacon/ticgit.git
  Remote branch merged with 'git pull' while on branch master
    master
  Tracked remote branches
    master
    ticgit
(4)远程仓库的删除和重命名

移除对应的远端仓库,可以运行 git remote rm 命令:

$ git remote rm paul
$ git remote
origin
在新版 Git 中可以用 git remote rename 命令修改某个远程仓库在本地的简短名称,比如想把 pb 改成paul,可以这么运行:

$ git remote rename pb paul
$ git remote
origin
paul


本地仓库由git维护三棵“树”组成:

第一个是“工作目录(working dir)”,它持有实际文件;

第二个是“缓存区(index)”,它像个缓存区域,临时保存你的改动;

第三个是“head”,指向你最近一次提交后的结果。


如果git push的时候出现错误如下:

error: The requested URL returned error: 403 while accessing https://github.com/wenph/rpg/info/refs
fatal: HTTP request failed

解决办法:

vim .git/config

修改

  1. [remote "origin"]  
  2.     url = https://github.com/wenph/example.git  
为:

  1. [remote "origin"]  
  2.     url = https://wenph@github.com/wenph/example.git  
再次git push,弹出框输入密码,即可提交!


标题基于Python的自主学习系统后端设计与实现AI更换标题第1章引言介绍自主学习系统的研究背景、意义、现状以及本文的研究方法和创新点。1.1研究背景与意义阐述自主学习系统在教育技术领域的重要性和应用价值。1.2国内外研究现状分析国内外在自主学习系统后端技术方面的研究进展。1.3研究方法与创新点概述本文采用Python技术栈的设计方法和系统创新点。第2章相关理论与技术总结自主学习系统后端开发的相关理论和技术基础。2.1自主学习系统理论阐述自主学习系统的定义、特征和理论基础。2.2Python后端技术栈介绍DjangoFlask等Python后端框架及其适用场景。2.3数据库技术讨论关系型和非关系型数据库在系统中的应用方案。第3章系统设计与实现详细介绍自主学习系统后端的设计方案和实现过程。3.1系统架构设计提出基于微服务的系统架构设计方案。3.2核心模块设计详细说明用户管理、学习资源管理、进度跟踪等核心模块设计。3.3关键技术实现阐述个性化推荐算法、学习行为分析等关键技术的实现。第4章系统测试与评估对系统进行功能测试和性能评估。4.1测试环境与方法介绍测试环境配置和采用的测试方法。4.2功能测试结果展示各功能模块的测试结果和问题修复情况。4.3性能评估分析分析系统在高并发等场景下的性能表现。第5章结论与展望总结研究成果并提出未来改进方向。5.1研究结论概括系统设计的主要成果和技术创新。5.2未来展望指出系统局限性并提出后续优化方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值