【代码管理,从小抓起】(一)

2022-06-27  本文已影响0人  陈有朴

熟练使用Git & Github,方便实验室共用分析脚本。
本篇文章整理了自己的一些Git笔记。

什么是Git?

一个免费和开源的分布式版本控制系统,旨在快速 & 高效地处理从小型项目到大型项目地所有项目。

功能概述:

一些基本概念

数据库(Repository)

概述:记录文件或目录状态的地方,存储着内容修改的历史记录。可以分为:远程数据库,本地数据库(个人使用)

数据库将文件和目录修改的历史记录放在对应的目录下。

暂存区和工作区

暂缓区,位于.git/下,为git add文件添加修改的目的地,被称为index或stage。

git commit是将暂缓区中的所有内容提交到当前分支。

工作区,为.git文件夹存放的位置。

初始配置

Git属于分布式版本控制系统,因此每一个用户都需要自报家门:Github ID和Github注册时所使用的邮箱,

使用--global参数,代表此机器上的所有Git仓库均使用该配置。

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

仓库初始化基本操作

1、初始化仓库

功能概述:将当前目录变为Git可以管理的仓库,并在当前文件夹下生成一个.git文件夹

使用命令:git init

一些注意事项,

本地仓库管理操作

1、添加文件到暂缓去

使用命令:gti add <filename>

# 示例代码
echo "git is great" > readme.txt
git add readme.txt

2、提交文件到仓库(将add选定文件添加到仓库)

使用命令:git commit <message>

一些参数,

-m      # 后接本次提交的说明语句
        # e.g. git commit -m "wrote a readme file"

一些注意事项,

3、查看仓库动态

使用命令:git status

4、查看文件动态

使用命令:git diff <filename>

5、查看仓库历史

使用命令:git log

一些参数,

--pretty=oneline    # 单行显示

6、回退文件

使用命令:git reset <filename>

一些参数,

--hard   # 后接版本号。
         # e.g. HEAD代表上一个版本,HEAD^代表上上个版本,HEAD~100代表上一百个版本

一些注意事项,

7、撤销修改

使用命令:git restore <filename>

8、删除文件

使用命令:git rm <filename>,即将版本库中的对应文件给删除。

远程仓库管理操作

Github —— 全球最大的同性交友网站,用于充当24小时都开机的服务器,存放原始仓库。

克隆和推送自己的仓库,需要先配置SSH密匙 —— 为了确保是本人对仓库进行操作。

1、建立本地仓库与远程仓库的连接

使用命令:

git remote add origin git@github.com:username/reponame.git

2、将本地仓库内容推送至远程库上

使用命令:git push

一些参数,

-u | --set-upstream   # 

示例代码,

git push -u origin master   # 将本地的master分支推送到远程的origin分支,并将本地和远程的master分支进行关联

3、删除远程库

使用命令:git remove rm

示例代码,

# 推荐在删除之前先查看下远程库信息
git remote -v
git remote rm origin

4、克隆远程仓库

使用命令:git clone <reponame.git>

一些注意事项


示例

1、提交文件到仓库 & 回退文件至初始状态

# 提交第一个版本的文件
echo "git is great" > readme.txt
git add readme.txt
git commit -m "og"


# 提交第二个版本的文件
echo "git is very great" > readme.txt
git add readme.txt
git commit -m "second"


# 查看两个文件之间的区别
git log
# Author: 
# Date:   Sun Jun 26 16:32:20 2022 +0800
# 
#     second
# 
# commit bb9ed7df4f625d65f7cedbb6c19d4bba8b94a26a
# Author: 
# Date:   Sun Jun 26 16:30:55 2022 +0800
# 
#     og
git log --pretty=oneline # 单行显示版本


# 文件版本回退
git reset --hard HEAD^

一些说明,

2、理解“Git只管理修改”

cat readme.txt
# git is great

# 第一次修改文件内容
echo "git is very great" >> readme.txt
# 添加文件到暂存区
git add readme.txt
# 第二次修改文件内容
echo "git is very very great" >> readme.txt
# 添加文件到仓库
git commit -m "understand how changes work"

# 查看仓库动态
git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git restore <file>..." to discard changes in working directory)
#         modified:   readme.txt
# 
# no changes added to commit (use "git add" and/or "git commit -a")

git status中,得到的结论是 —— 第二次的修改没有被提交。原理如下:

第一次addreadme.txt添加到暂存区,虽然进行了第二次修改,但是最后提交的是已放入暂存区中的、第一次修改过的文件,而非第二次修改的文件(因其未被添加到暂存区)。

3、从本地仓库中删除文件

# 删除文件
rm -rf readme.txt

# 查看文件状态
git status
# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git restore <file>..." to discard changes in working directory)
#         deleted:    readme.txt
# 
# no changes added to commit (use "git add" and/or "git commit -a")

# 将版本库中的文件也删除
git rm readme.txt

# 将删除文件复原(版本库中存放了原始文件)
git restore readme.txt

4、上传本地仓库到Github

git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:username/reponame.git
git push -u origin main
上一篇 下一篇

猜你喜欢

热点阅读