首页 > 其他分享 >1、Git快速入门

1、Git快速入门

时间:2023-03-11 23:11:44浏览次数:52  
标签:文件 git remote 入门 仓库 start Git 快速 远程

如何使用git

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/git/git-quick-start.html#article-start

安装git客户端后,右键会看到一个Git Bash, 打开

获取git remote仓库

1)克隆现有的仓库

git clone http://git.oschina.net/yiibai/git-start.git

此命令会在当前目录创建git-start 目录,并且目录中会有一个.git 目录,从remote中拉下来的所有数据都在.git 目录中

如果在clone remote 的时候自定义创建的文件名字,可以这样操作

git clone http://git.oschina.net/yiibai/git-start.git mygit_start

2)在现有目录中初始化仓库

如果不克隆现有的仓库,而是打算使用Git来对现有的项目进行管理,假设有一个项目的目录是:E:\.temp,只需要进入该项目的目录并输入:

git init

该命令会创建一个.git 的子目录,这个子目录会含有初始化的Git仓库中所有的必须文件,这些文件是Git仓库的骨干。

如果是在一个已经存在文件的文件夹(而不是空文件夹)中初始化 Git 仓库来进行版本控制的话,应该开始跟踪这些文件并提交。可通过 git add 命令来实现对指定文件的跟踪,然后执行 git commit 提交,假设在目录 F:\worksp\git-start.git 中有一些代码需要跟踪(版本控制),比如有一个 Python 代码文件叫作:hello.py 内容如下:

#!/usr/bin/python3
#coding=utf-8

print('This is my first Python Programming')

可以通过git add 命令进行追踪

git add hello.py
git commit -m '第一次提交'

检查当前文件的状态

git status

此时在.git 所在的目录下新建一个文件,git status 就会看到如下的提示。当前文件处于untracked files下面,表示未追踪吗,即之前的快照(提交中)没有这些文件.除非告诉git 我要追踪(git add) ,否则git 不会自动纳入追踪范围

如果把文件删除,就没有任何提示

追踪新文件

git add 开始追踪一个文件,

git add aa.txt
git status

只要是在 changes to be commited 这行下面,就表示是已暂存状态

暂存已修改文件

如果,一个文件已经被追踪(git add xxx.txt) ,此时打开文件进行修改,在通过git status 就会发现如下

该文件出现在changes not staged for commit 下,说明已跟踪的文件内容发生了变化,但是还没有放到暂存区,需要运行git add 命令,这个命令也可以表示为"添加内容到下一次提交中"

忽略文件

一般我们总会有一些文件无需纳Git 的管理范围中,也不希望他们总是出现在未追踪的列表中,此时,可以创建一个.gitignore 的文件,列出要忽略的文件

此时有三个文件在untracked files 列表,我们需要忽略b.txt c.txt

如下操作

# .gitignore
b.txt
c.txt

此时会发现,那两个文件已经不存在未追踪列表了

.gitignore 的格式规范如下:

  • 所有空行或者以 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

查看已暂存和未暂存的修改

git status 输出文件状态,那如何查看文件进行了哪些修改? 可以使用git diff 命令。

修改a1.txt 文件,执行git status 会出现如下

使用git diff, 可以看到尚未暂存的文件更新了哪些部分,不加参数直接使用

提交更新

在提交之前,一定要使用git status 查看文件状态,防止最新的修改信息没有追踪到

git status
git commit

如果每次都使用git add xxx 进行追踪太麻烦,可以使用 git commit -a 这个命令可以跳过暂存区,自动把所有文件追踪并提交

移除文件

1、直接通过rm 命令删除文件,如果还没有存放在暂存区,git status 不会显示 Changes not staged for commit,同时本地文件会删除

2、如果删除的文件已经在暂存区了,此时会出现在Changes no staged for commit,使用 git rm -f xxx,进行强制删除

{{uploading-image-869820.png(uploading...)}}

撤销操作

在任何一个阶段,如果想撤销操作,有对应的指令

比如在我们提交之后才发现漏了几个文件,或者提交信息写错了,此时用过运行 带有--amend 的 命令尝试重新提交

# 第一次发起提交
git commit -m 'initial commit'
# 发现文件忘记暂存了,git add进行追踪
git add forgotten_file
# 判断上一次提交后有没有改动,如果没有则使用上一次的提交,否则使用本次提交代替上一次
git commit --amend

取消暂存的文件

演示如何操作暂存区域与工作目录中已修改的文件。 这些命令在修改文件状态的同时,也会提示如何撤消操作。 例如,你已经修改了两个文件并且想要将它们作为两次独立的修改提交,但是却意外地输入了 git add * 暂存了它们两个。 如何只取消暂存两个中的一个呢? git status 命令提示:

撤消对文件的修改

6 远程仓库的使用

前面所有讲解的内容都是一个人“自娱自乐”, Git这东西自己玩也没有多大意思,没有发挥出来Git最牛逼的地方。要使用Git在项目上多人协作那才有意思。

为了能在任意 Git 项目上协作,需要知道如何管理自己的远程仓库(remote repository)。远程仓库是指托管在因特网或其他网络中的你的项目的版本库。可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。 在本节中,我们将介绍一部分远程管理的技能。

6.1 查看远程仓库

如果想查看已经配置的远程仓库,可以运行git remote 命令,它会列出你指定的每一个远程服务器的简写,如果已经克隆了自己的仓库。那么至少应该能看到origin 这是Git 给你克隆的服务器的默认名字

git clone http://git.oschina.net/yiibai/git-start.git #克隆远程仓库
cd git-start  # 进入目录
git remote # 查看配置的远程仓库

也可以指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。

git remote -v

origin  http://git.oschina.net/yiibai/git-start.git (fetch)
origin  http://git.oschina.net/yiibai/git-start.git (push)

6.2 添加远程仓库

git remote
origin  # clone服务器时的默认名字

# 添加远程
# gs: 自定义一个简写
git remote add gs http://git.oschina.net/yiibai/git-start.git
git remote -v

gs      http://git.oschina.net/yiibai/git-start.git (fetch)
gs      http://git.oschina.net/yiibai/git-start.git (push)
origin  http://git.oschina.net/yiibai/git-start.git (fetch)
origin  http://git.oschina.net/yiibai/git-start.git (push)

![image-20210910103757155](C:\Users\Xue Jian\AppData\Roaming\Typora\typora-user-images\image-20210910103757155.png)

现在就可以在命令行中使用过字符串gs 来代替整个url,列如,如果想拉取仓库中有,但是你没有的信息,可以运行git fetch gs

git fetch gs
From http://git.oschina.net/yiibai/git-start
 * [new branch]      master     -> gs/master

现在 master 分支可以在本地通过gs/master 访问到,

可以将其合并到自己的某个分支中,或者如果想要查看它,可以检出一个指向该点的本地分支。

6.3从远程仓库中拉取

从远程仓库中获取数据,可以执行:

git fetch [remote-name]

这个命令会访问远程仓库,从中拉取所有还没有的数据。执行完成后,将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。

如果使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。

所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。 必须注意 git fetch 命令会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作。 当准备好时必须手动将其合并入你的工作区。

如果你有一个分支设置为跟踪一个远程分支,可以使用 git pull 命令来自动的抓取然后合并远程分支到当前分支。 这对你来说可能是一个更简单或更舒服的工作流程;默认情况下,git clone 命令会自动设置本地 master 分支跟踪克隆的远程仓库的 master 分支(或不管是什么名字的默认分支)。 运行 git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。

6.4 推送到远程仓库

当想要分享你的项目时。必须将其推送到上游。整个命令很简单:git push [remote-name][branch-name]

当想要将master 分支推送到origin 服务器时(再次说明:克隆时通常会自动帮你设置好那两个名字)。运行整个命令就可以将所作的备份到服务器:

git push origin master

只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。 当你和其他人在同一时间克隆,他们先推送到上游然后你再推送到上游,你的推送就会毫无疑问地被拒绝。 你必须先将他们的工作拉取下来并将其合并进你的工作后才能推送。

6.5查看远程仓库

如果想要查看某个远程仓库的更多信息,可以使用git remote show [remote-name] 命令,如果想以一个特定的缩写名运行整个命令。列如:origin,会得到如下信息:

git remote show origin

它同样会列出远程仓库的 URL 与跟踪分支的信息。 这些信息非常有用,它告诉你正处于 master 分支,并且如果运行 git pull,就会抓取所有的远程引用,然后将远程 master 分支合并到本地 master 分支。 它也会列出拉取到的所有远程引用。

6.6 远程仓库的移除与重命名

如果想要重命名引用的名字可以运行 git remote rename 去修改一个远程仓库的简写名。列如,想把gs 重命名为news,可以运行

git remote rename gs news
git remote
origin
news

值得注意的是这同样也会修改你的远程分支名字。 那些过去引用 gs/master 的现在会引用 newgs/master

如果因为一些原因想要移除一个远程仓库 - 你已经从服务器上搬走了或不再想使用某一个特定的镜像了,又或者某一个贡献者不再贡献了 - 可以使用 git remote rm

git remote rm news
git remote
origin

标签:文件,git,remote,入门,仓库,start,Git,快速,远程
From: https://www.cnblogs.com/xuejian123/p/17204323.html

相关文章

  • 3、Git常规操作
    常规操作https://www.cnblogs.com/ydbk/p/14257920.html克隆操作gitclonehttp://git.oschina.net/yiibai/sample.git[自定义目录名称]#如果不自定义,就会默认创建......
  • Git rebase 与 merge
    合并分支在开发过程中,会有许许多多的分支,但每一个仓库都有一个核心分支——main分支,用于发布稳定版本的分支。其余的分支开发完成一个功能或修复一个BUG之后都是要与......
  • 【基础篇】dapr入门开发环境搭建
    目录 1.安装Hyper-VEnable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Hyper-V-All2.安装WSL22.1以管理员启动运行WindowsPowerShell PSC:\U......
  • dfs入门,一个简单的迷宫问题
    AcWing走迷宫问题给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1......
  • git将本地文件传到gitee中
    一,文件上传到gitee1.先在gitee中新建一个仓库获取地址:[email protected]:weixinwen/practice.git如下图2.简易的命令行入门教程:Git全局设置:gitconfig--globaluser.......
  • flink入门-流处理
    入门需要掌握:从入门demo理解、flink系统架构(看几个关键组件)、安装、使用flink的命令跑jar包+flink的webUI界面的监控、常见错误、调优一、入门demo:统计单词个数0、......
  • 笔记五:git团队协作
    一:学习内容git团队内协作git跨团队协作 二:git团队内协作用案例来说明步骤:1.师傅岳不群创建了一套华山剑法,把它推送到代码托管中心远程库2.弟子令狐冲将整套剑法下......
  • 笔记四:git分支
    一:学习内容git分支特性git分支操作-查看分支git分支操作-创建分支git分支操作-切换和修改分支git分支操作-分支合并git分支操作-代码合并冲突解决 二:git分支特......
  • 笔记三:git常用命令
    一:学习内容1、设置用户签名:gitconfig--globaluser.name用户名gitconfig--globaluser.email邮箱2、操作本地库:初始化本地库:gi......
  • 路飞项目,celery异步任务框架,介绍和安装,快速使用,包结构
    celery介绍和安装celery是什么翻译过来就是芹菜的意思,跟芹菜没有关系框架:服务,python的框架,跟django无关能用来做什么异步任务定时任务延迟任务理解celery的运行......