Git入门使用笔记

本文介绍了Git的基本概念、工作流程,包括本地和分布式版本控制的特点,演示了GitBash、GitCMD和GitGUI的使用,讲解了Git配置、文件状态管理、分支操作以及如何通过码云Gitee的SSH公钥实现免密码登录。还解答了关于Git的一些常见问题。
摘要由CSDN通过智能技术生成

Git学习视频 【狂神说Java】Git最新教程通俗易懂_哔哩哔哩_bilibili

版本控制概念:开发过程时 管理文件、工程,查看更改历史记录,备份以及回退先前版本的一种技术。

引入情景

个人本地文档版本: 项目1.doc         

                                 项目(1).doc

                                 最终项目.doc

                                 最终项目(1).doc

                                 最终项目(2).doc      

                                 辞职信.doc

                                 遗书.docx

由此引入代码项目版本控制工具 : Git

版本控制分类

        1.本地版本控制

        2.集中版本控制        SVN

        3.分布式版本控制     Git

软件下载

Git 官网:Git 下载对应版本即可

关于Git项

Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多

Git CMD:Windows风格的命令行

Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

Git FAQS: git常见问题答疑页面

Git Release Notes: git 发行版本的说明页面

        

     Bash常用命令

#Git Bash 常用命令

cd : 改变目录
cd .. 回退到上一个目录,直接cd进入默认目录
pwd : 显示当前所在的目录路径
ls : 都是列出当前目录中的所有文件
touch :新建一个文件 如touch index.js就会在当前目录下新建一个index.js
rm :删除一个文件, rm index.js就会把index.js文件删除
mkdir :新建一个目录,就是新建一个文件夹
rm -r 删除一个文件夹,rm -r src 删除src目录
mv 移动文件, mv index.html src index.html 是我们要移动的文件,src是目标文件夹
reset 重新初始化终端/清屏
clear 清屏
history 查看命令历史
help 帮助
exit 退出
# 表示注释        

Git配置

#git配置查看

git config -l


#查看系统config

git config  --system --list


#git个人用户配置global配置

git config --global --list


Git用户配置文件路径

        C:\Users\用户名\ .gitconfig

        

        可以在此文件内进行用户名和邮箱配置

               

        或命令行配置  


git config --global user.name "user"  #名称
git config --global user.email xxxxxxx@qq.com   #邮箱

Git基本理论

        工作区域:

                        Remote Directory 远程的git仓库 (代码托管服务器)

                        Repository 资源库 (本地仓库,安全存储数据)HEAD指向最新放入仓库的版本

                        Stage/Index 暂存区 (临时存储代码)

                        Working Directory 工作目录 (平时存储代码)

         引用狂神大大的图

                                

工作流程

        git的工作流程一般是这样的:

        1、在工作目录中添加、修改文件;

        2、将需要进行版本管理的文件放入暂存区域;

        3、将暂存区域的文件提交到git仓库。

git管理文件状态

                已修改(modified),已暂存(staged),已提交(committed)

git项目搭建【日常使用】

  本地仓库搭建:
# 在当前目录新建一个Git代码库
$ git init
克隆远程仓库:

# 克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]

文件状态

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.

  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !

  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

如何查看文件状态
#查看指定文件状态
git status [filename]

#查看所有文件状态
git status

上传操作代码

# git add .                  添加所有文件到暂存区
# git commit -m "消息内容"    提交暂存区中的内容到本地仓库 -m 提交信息
# git push                   上传到远程仓库

文件忽略(不加入版本控制)

在主目录下建立".gitignore"文件,此文件有如下规则:

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。

  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,...})代表可选的字符串等。

  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。

  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。

  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。

*.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/       #忽略build/目录下的所有文件
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

#注释后方内容

        

关于码云Gitee

        SSH公钥 实现免密码登录

# 进入 C:\Users\Administrator\.ssh 目录
# 生成公钥
ssh-keygen
ssh-keygen -t rsa #-t rsa 加密算法

   了解更多: ssh-keygen -t rsa详解-CSDN博客

Git绑定

        将远程git文件目录拷贝到项目中即可!

Git分支

        分支概念:平行宇宙 

        难点:平行宇宙重合时发生的冲突(合并分支)

        分支常用命令

# 列出所有本地分支
git branch

# 列出所有远程分支
git branch -r

# 新建一个分支,但依然停留在当前分支
git branch [branch-name]

# 新建一个分支,并切换到该分支
git checkout -b [branch]

# 合并指定分支到当前分支
$ git merge [branch]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

FAQ(来自b站用户)

   解决用ssh-key后仍须输入密码的问题

        用户:鸡密啊
        1、使用ssh方式克隆 git clone git@gitee.com:Name/project.git
        就是说,在项目克隆/下载处,选择ssh方式的下载地址
        2、如果你已经用https方式克隆了仓库,不必删除仓库重新克隆,只需将当前项目中的         .git/config文件中的
        url = https://gitee.com/Name/project.git
        修改为
        url = git@gitee.com:Name/project.git
        再次提交就不需要密码了!

  • 44
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值