Git学习笔记

开启新旅程

git 的内容部分来自于下面的学习的链接,部分来自博主实际遇到的问题
https://www.liaoxuefeng.com/wiki/896043488029600/896827951938304

安装Git

默认安装
然后打开git bash
输入下述命令

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

完成安装
git config --global 参数

创建一个新的版本库

Step1: 第一步创建空目录

mkdir learngit
cd learngit 
pwd

mkdir // 创建文件夹
pwd //显示文件目录

Step2:将目录添加为可以管理的仓库

git init

添加新的文件

添加一个文件叫做BFS.cpp
首先在learngit的文件目录下面创建BFS.cpp文件夹

  1. 将文件添加导仓库
git add BFS.cpp
  1. 告诉Git将文件提交到仓库
git commit -m "wrote a BFS.cpp file"

git commit命令后面添加-m是本次提交的说明,可以输入任何的内容,用于说明本次的改动记录
这个操作对文件没有改动,只是为了告诉别人本次修改的内容
这个命令执行完成后,系统提示:
1file changed
96 insertions 插入了几行内容
creat mode (?) //还不知道是什么意思

为什么使用了add添加文件还要使用commit,因为commit 可以一次性提交多个文件,可以add多个不同的文件
例如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
git add . #添加所有的文件
git add -u #添加已经跟踪的文件
git add -A #添加已经跟踪的文件和未跟踪的文件
git reset HEAD +文件名 #取消添加

Tips:

添加文件到Git仓库,分两步:

  1. 使用命令git add ,注意,可反复多次使用,添加多个文件;
  2. 使用命令git commit -m ,完成。

修改文件后怎么办?

先修改原来添加的文件BFS.cpp

知道自己改了什么

使用命令git status 查看修改后的结果

git status

上述命令说明BFS.cpp被修改了,但是并不知道修改了什么

使用git diff 查看修改了什么

git diff

实际上我并没有修改语句,只是删除了两个换行

  • 是删除的意思
  • 是增加了什么的意思

重新添加到仓库

提交修改和提交新文件的步骤一致

git add BFS.cpp
git commit -m "delete line breaks"

这时候查看状态就没有什么问题了

版本回退

git是分布式版本控制系统,可以回退到之前的任何一个版本,防止文件该乱了,或者误删了什么文件,可以恢复到最近的commit.

回顾修改的所有的版本

使用命令 git log显示最近到最远的提交日志

git log

回顾版本的结果

如果想起输出的信息太多,看的眼花缭乱,可以最初简化

git log --pretty=oneline
  • 在一行里面显示,没有两行显示,twoline是错误的

  • 其中,HEAD 是头节点的意思,也就是目前的版本是这一个

GUI界面可以看到版本内容

回退前面的版本

当前的版本就是HEAD, 上一个版本就是HEAD,上上个版本就是HEAD^,以此类推。。。前面的第一百个版本为HEAD~100
命令如下:

git reset --hard HEAD^
cat BFS.cpp

cat 是现实当前版本文件的全部内容

再用git log 查看现在的版本,发现现在的版本不包含之前的版本了

git log
  • 这时候找不到之前的版本了,一种方法是找到之前看到的版本号,然后写几位数,就可以回退到原来的版本了,但是如果查找不到原来的版本的话?

使用命令git reflog,查看之前的版本,

git reflog

然后可以找到之前的版本号码,可使用git reset --hard "版本号"进行回退

上传远程库

Step1: 输入

git remote add origin “远程库名称”

下面是自己创建的仓库的地址

如果没有报错就是对的,如果已经链接了,则会出现

Step2:

git push -u origin --all

git push -u origin --tags
# 更新目前的设置
  • 错误调试,因为输入的密码错误,导致如下错误

如果错误反复出现,不在允许输入密码,那么清楚缓存的密码:

git config --system --unset credential.helper
git push <远程主机名> <本地分支名> <远程分支名>

git push origin master:refs/for/master

第一个master是本地分支名,第二个master是远程分支名。

1.1 git push origin master

如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建

1.2 git push origin

refs/for/master   如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin --delete master

1.3 git push origin

如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支 上述已有的仓库,在gitlab中创建,

(1) git push -u origin master

如果当前分支与多个主机存在追踪关系,则可以使用 -u 参数指定一个默认主机,这样后面就可以不加任何参数使用git push,不带任何参数的git push,默认只推送当前分支,这叫做simple方式,还有一种matching方式,会推送所有有对应的远程分支的本地分支, Git 2.0之前默认使用matching,现在改为simple方式 如果想更改设置,可以使用git config命令。git config --global push.default matching OR git config --global push.default simple;可以使用git config -l 查看配置

(2) git push --all origin

当遇到这种情况就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要 -all 选项

(3) git push --force origin git push

时候需要本地先git pull更新到跟服务器版本一致,如果本地版本库比远程服务器上的低,那么一般会提示你git pull更新,如果一定要提交,那么可以使用这个命令。

(4) git push origin --tags

git push 的时候不会推送分支,如果一定要推送标签的话那么可以使用这个命令

完成上传

clone在线工程

git clone “代码clone with SSH的链接”

本地仓库更新到远程master

git pull --rebase origin master

删除建立的仓库

find . -name ".git" | xargs rm -Rf

修改commit 信息

  • 修改最新的log
    直接使用命令
git commit --amend

进入vim窗口之后,修改好信息,然后在最下面,按esc, :, x保存并且退出

  • 修改历史的log
    如果要修改历史的版本信息

  • 修该历史信息
    执行git 操作, 修改近三次的信息

git rebase -i HEAD~3

现在的信息是按照从旧到新的顺序排列,是和git log顺序反过来的 。。。。。

删除已经存在于工作区的文件

  • 删除工作区和暂存区
git rm -r <file> //从工作区和暂缓区删除某个文件
git commit -m "" //就是把文件都删除了
  • 只是从暂存区删除文件,本地的工作去不受更改
git rm -r -cached "文件名" //只是删除了commit里面的信息
  • 误删除后复原
git checkout --<file>

撤销提交的命令

例如,撤销下面的命令

$ git rm -r --cached .$ git add .$ git commit -m "remove xyz file"

确定什么需要上传git, 什么不需要上传

.vs 不需要上传
data 不需要上传

保存缓存区

git stash
git stash pop
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值