GIT使用笔记

GIT学习

全局设置账号邮箱

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

通过如下命令把这个目录变成Git可以管理的仓库:

$ git init  

如果我们想知道上次是怎么修改readme.txt 文件的,需要用 git diff 命令

$ git diff readme.txt  
diff --git a/readme.txt b/readme.txt  
index 46d49bf..9247db6 100644  
--- a/readme.txt  
+++ b/readme.txt  
@@ -1,2 +1,2 @@  
-Git is a version control system. //这一句是被删掉的  
+Git is a distributed version control system. //这一句是新添加的  
Git is free software. 

git status 查看一下当前仓库状态
git log 命令进行查看文件在仓库的版本

$ git log //查看历史记录  
commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)  
Author: Michael Liao <askxuefeng@gmail.com>  
Date: Fri May 18 21:06:15 2018 +0800  
append GPL  
commit e475afc93c209a690c39c13a46716e8fa000c366  
Author: Michael Liao <askxuefeng@gmail.com>  
Date: Fri May 18 21:03:36 2018 +0800  
add distributed  
commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0  
Author: Michael Liao <askxuefeng@gmail.com>  
Date: Fri May 18 20:59:18 2018 +0800  

好了,现在如果我们想把 readme.txt 文件退回到上一个版本,就可以使用 git reset 命令:

$ git reset --hard HEAD^  
//HEAD表示当前版本,则HEAD^表示上一个版本,那么上上版本就是HEAD^^*  
HEAD is now at e475afc add distributed  

我们现在想要回到最新的版本,还是使用 git reset 命令:

$ git reset --hard 1094a 

这里不能用HEAD而必须使用 commit id ,因为最新版本在之前返回时已经被删除了,1094a就是最新版本的 commit id,可以在之前的代码中查到*

工作区和暂存区

工作区(Working Directory)
learngit 文件夹就是一个工作区。
版本库(Repository)
工作区有个隐藏目录 .git ,这个不算工作区,而是 Git 的版本库。
版本库里面的 index(stage)
文件叫暂存区,还有Git为我们自动创建的第一个分支 master ,以及指向 master 的一个指针叫做 HEAD。
在这里插入图片描述

前面我们提到过,如果我们想把文件添加到Git里面时,需要分两步:
第一步是用 git add 把文件添加进去,实际上就是把文件修改添加到暂存区。
第二步是用 git
commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支。(我们现在只有唯一一个分支
master,所以现在就是往 master 分支上提交更改)
我们可以使用 git reset HEAD file 命令把把暂存区的修改撤销掉,重新放回工作区:

$ git reset HEAD readme.txt // git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区,HEAD表示最新版本。    
Unstaged changes after reset:  

确实要从版本库中删除该文件,那就用 git rm 命令删除
如上图所示我已经把本地仓库的内容推送到了GitHub上了,大家创建完以后应该是一个空的仓库。这时候我们可以在本地learngit仓库下运行命令:

$ git remote add origin git@github.com:RFHzhj/learngit.git

//"RFHzhj"是我的GitHub的账户名,你需要填写你自己的账户名 添加后,远程库的名字就是 origin ,这是Git默认的叫法。
然后,我们就可以把本地库的所有内容推送到远程库上:
使用 git push 命令,就是把当前分支 master 推送到远程。
因为远程库是空的,所以我们在第一次推送 master分支时,要加上 -u 参数,Git不但会把本地的 master 分支内容推送的远程新的master 分支,还会把本地的 master 分支和远程的 master分支关联起来,在以后的推送或者拉取时就可以简化命令。

$ git push -u origin master
Counting objects: 20, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.
Total 20 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), done.
To github.com:RFHzhj/learngit.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master  

把本地master 分支的最新修改推送至GitHub。现在,我们拥有了真正的分布式版本库。
如果想查看你已经配置的远程仓库服务器,可以运行 git remote 命令。
它会列出你指定的每一个远程服务器的简写。
如果你已经克隆了自己的仓库,那么至少应该能看到 origin ------这是 Git
给你克隆的仓库服务器的默认名字:

$ git clone https://github.com/schacon/ticgit
Cloning into 'ticgit'...
remote: Reusing existing pack: 1857, done.
remote: Total 1857 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1857/1857), 374.35 KiB | 268.00 KiB/s, done.
Resolving deltas: 100% (772/772), done.
Checking connectivity... done.
$ cd ticgit
$ git remote
origin

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

$ git remote -v  
origin https://github.com/schacon/ticgit (fetch)  
origin https://github.com/schacon/ticgit (push)  

分支

查看所有分支

git branch -a  

切换分支
git checkout 分支名字

$ git checkout -- test.txt // 用版本库里的版本替换工作区的版本。

创建并切换到新分支

git checkout -b panda  

修改分支名称:
如果对于分支不是当前分支,可以使用下面代码:

git branch -m "原分支名" "新分支名"

如果是当前,那么可以使用加上新名字

git branch -m "新分支名称"  

将本地创建的分支同步到远程

git push -u origin dev (dev是你创建的分支名) 

拉取其他分支

git pull origin master(分支名称) 

合并分支

https://blog.youkuaiyun.com/tmacsky/article/details/78795894

Git stash

1、git stash
备份当前工作区的内容,保存到git 栈中,从最近的一次commit中读取相关内容
2、git pull 或者做其他的工作
3、git stash pop 从git栈中获取到最近一次stash进去的内容,恢复工作区的内容。。获取之后,会删除栈中对应的stash 由于可能会stash多次,git使用栈管理,我们可以使用git stash list查看所有的stash

git stash list  

显示git栈中的所有工作区内容的备份,
比如使用git stash apply stash@{1},就可以把版本号为stash@{1}的备份取出,不会删除对应的stash。。0为最新版本

清空git栈:

git stash clear 

–h Git回滚git reflog

$ git reflog
c4dff881 (HEAD -> feature_zjmj_inefficiencies_0825) HEAD@{0}: pull:
Fast-forw
30a543aa HEAD@{1}: reset: moving to HEAD
30a543aa HEAD@{2}: commit: feat: 成效评价中间板块构建
d52718e9 HEAD@{3}: commit: feat: 成效评价中间板块构建
2858d780 HEAD@{4}: commit: feat: 成效评价中间板块构建
3e79d360 HEAD@{5}: pull: Fast-forward
0059e044 HEAD@{6}: pull: Fast-forward

找到需要回退的版本,执行命令:git reset --hard HEAD@{n}
如执行:git reset --hard 61a942c

查看线上分支

git checkout {id}

获取id:
下面是我们的一条ci记录:
在这里插入图片描述
我们点击这个id
之后进入详情点击这里复制id
在这里插入图片描述
执行下面代码就可以了

git checkout 6f8b12ddb6a7d240268d5fa68d03cf926b7c26fb // 刚刚复制的id

设置git文件名称大小写敏感

git 默认不区分文件名大小写
当你创建一个文件后,叫 readme.md 写入内容后 提交到线上代码仓库.
然后你在本地修改文件名为 Readme.md 接着你去提交,发现代码没有变化.
控制台输入git status 也不显示任何信息
那么就配置git 使其对文件名大小写敏感

git config core.ignorecase false
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Freedom风间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值