Git笔记

Git是什么

官方话:Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。

  • 引用廖雪峰老师的话,它能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以。

为什么要学习Git

  • 面试要被问。可以应付面试。
  • 很多公司开发都用Git来处理项目。现在不学,以后肯定还要学。
  • 在我看来Git是现如今所有程序员都要掌握的,以后与同事共同开发项目必定要用到的,熟练掌握Git命令,可以提高开发的效率。

Git特点

     项目越大越复杂,协同开发者越多,越能体现出Git 的高性能和高可用性!并且git有 3个区域。

三个区域
  • 工作区

  • 暂存区

  • 仓库区

Git操作步骤

(1)使用git初始化项目

在计算机上创建一个项目文件夹,打开 git bash 执行命令

(2) 执行命令,初始化当前项目为 git 管理的项目:

注意:
 将文件夹初始化成git管理的项目文件夹,命令执行完成后,文件夹中会多出一个.git 隐藏文件夹
 .git/文件夹中的文件,就是用来自动记录用户修改当前文件夹中的文件历史记录的! 不需要人工干预!
git init

(3) 把工作区添加到暂存区

(4) 把暂存区添加到仓库区

Git命令和常规操作git

init   git管理初始化
add    工作区文件添加到暂存区
    git add 文件名    将指定的文件添加到暂存区
    git add .        将工作区所有的文件添加到暂存区
    git add *        将工作区所有的文件添加到暂存区
commit 暂存区文件添加到仓库区
    git commit -m '提交的描述'
status 查看项目状态
log    查看历史提交记录
reset  回退提交的版本
reflog 查看所有提交记录

$ git init
Initialized empty Git repository in D

$ git add .

$ git commit -m '第一次'
[master (root-commit) ab43b40] 第一次
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 1.html

$ git status
On branch master
nothing to commit, working tree clean

$ git log
commit ab43b40d971be78f137ae43636fa7810827ae0c1 (HEAD -> master)

    第一次

$ git reflog
ab43b40 (HEAD -> master) HEAD@{0}: commit (initial): 第一次

回退历史版本

git总是可以有反悔药吃 返回上一次

git reset --hard 版本号

版本号说明:
1) HEAD^ 上一个版本  HEAD^^  HEAD^^^ ....
2)版本号(可以通过reflog来查看操作历史记录,然后使用版本号的前7位即可),例如:git reset --hard 227e72c

$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        2.html

nothing added to commit but untracked files present (use "git add" to track)
$ git add .

$ git commit -m '第二次'
[master a118037] 第二次
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 2.html

$ git reflog
a118037 (HEAD -> master) HEAD@{0}: commit: 第二次
36b10d3 HEAD@{1}: reset: moving to HEAD^
0502b63 HEAD@{2}: reset: moving to 0502b63
0502b63 HEAD@{3}: commit: 第二次
36b10d3 HEAD@{4}: reset: moving to 36b10d3
36b10d3 HEAD@{5}: reset: moving to HEAD
36b10d3 HEAD@{6}: commit (initial): 第一次、

$ git reset --hard HEAD^
HEAD is now at 36b10d3 第一次


分支

介绍

git版本控制系统支持分支操作。使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。默认只有一个分支为master主分支。

什么是主分支?

在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。通常我们把这个master 分支叫做主分支。

分支相关命令

branch
    语法:git branch 
    作用:查看已有分支列表
branch 分支名 
    语法:git branch 分支名

    作用:创建一个指定名称的分支
checkout
    语法:git checkout 分支名
    作用:切换不同的分支
merge
    语法:git merge 分支名

$ git branch
* master

//创建一个新的分支(ls)
$ git branch ls

$ git branch
  ls
* master

$ git checkout ls
Switched to branch 'ls'

//当前主分支(ls)
$ git branch
* ls
  master

$ git add .

$ git status
On branch ls
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   3.html


$ git commit -m "第三次"
[ls e171202] 第三次
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 3.html

$ git status
On branch ls
nothing to commit, working tree clean

$ git checkout master
Switched to branch 'master'

$ git merge ls
Updating ab43b40..e171202
Fast-forward
 3.html | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 3.html

解决分支冲突

如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法合并它们。 我们需要打开这些包含冲突的文件然后手动解决冲突。

远程控制

介绍

Git 命令都是在本地执行,如果想通过 Git 分享你的代码或者与其他开发人员合作。就需要将文件放到一台其他开发人员能够连接的服务器上。这就是远程仓库的作用。

操作流程

注册

创建远程仓库

本地文件推送到远程仓库

克隆和同步远程仓

相关命令

remote add     把远程仓库地址添加到本地。使本地仓库和远程仓库产生关联 
remote -v      查看远程地址信息
push
               1、如果使用-u参数,则第2次及以后可以直接使用git push把本地推送到远程仓库
               2、添加gitee的账号和密码,正确则正常推送
clone          拷贝一个远程仓库到本地。
pull
               当本地已有远程仓库,而远程仓库如果已经有更新,则可以使用此命令更新本地仓库。
               例如:下班git push,早上上班 git

//克隆网址
$ git clone https://...

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        1.html

nothing added to commit but untracked files present (use "git add" to track)

$ git add .


$ git commit -m '第一次'
[master e50bb5d] 第一次
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 1.html

//与网址链接
$  git remote add xx https://...
//把提交的内容推进去(网址里)
$ git push -u xx master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 271 bytes | 271.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/crane-disturban/2023823.git
   e4daeb7..e50bb5d  master -> master
branch 'master' set up to track 'xx/master'.

其它命令

git remote rm origin 删除远程仓库地址

注意:

(1)在使用pull命令从远程服务器拉去项目内容时,要保证本地仓库的版本低于远程服务器

(2)运行 git pull 通常会从远程服务器上抓取数据并自动尝试合并到当前所在的分支。

SSH访问

简介:传统方式访问远程仓库的问题:传统方式本地和远程传输,需重复输入gitee的账号和密码,较为繁琐。SSH好处:免登录身份认证、数据加密传输。而SSH实现本地仓库和gitee之间免登录的加密数据传输。更重要的原因是团队协同开发更加方便。

SSH组成: (1)id_rsa 私钥文件,存放于开发者的电脑中 (2)id_rsa.pub 公钥文件 。

生成密钥步骤:1、打开Git Bash 2、执行相关命令 3、连续敲击3 次回车

相关命令

ssh-keyge

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

解释:生成公钥和密钥。特殊说明:会生成在C:\Users\用户名文件夹.ssh目录中。

ssh

ssh -T git@gitee.com

解释:检测Github 的SSH key 是否配置成功。

(1)使用记事本打开id_rsa.pub文件,复制里面的文本内容

(2)登录gitee,点击头像-> 设置-> 安全设置:SSH公钥 -> 添加公钥

(3)将id_rsa.pub 文件中的内容,粘贴到公钥 对应的文本框中

(4)在Title 文本框中任意填写一个名称,来标识这个Key 的所有者是谁

注意:

(1)若需要通过https的方式访问别人的public开源库,则可以通过输入用户名、密码的方式来完成提交(但一定要保证本地账户凭据与远程一致,若不一致,则使用下面步骤来修改)。

步骤:控制面板-用户账户-管理Windows 凭据-修改普通凭据即可

(2)若使用SSH方式来提交仓库,则需要在账户中配置公钥(一个公钥对应一个私钥,若多人,需添加多个公钥)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值