Git学习(一)(下)

简介: Git学习(一)(下)

4.3.4 配置 git lg


git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

0a2653c851af460fa595bd959398a8f1.png


4.4 配置文件


4.4.1 全局配置文件


$ cat .git/config 
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git@codechina.csdn.net:codechina/learngit.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[alias]
    last = log -1


别名就在[alias]后面,要删除别名,直接把对应的行删掉即可。

而当前用户的 Git 配置文件放在用户主目录下的一个隐藏文件.gitconfig中:


4.4.2 用户配置文件


$ cat .gitconfig
[alias]
    co = checkout
    ci = commit
    br = branch
    st = status
[user]
    name = Your Name
    email = your@email.com
[color]
  ui = true


配置别名也可以直接修改这个文件,如果改错了,可以删掉文件重新通过命令配置。


五、Git使用


5.1 创建仓库: git init / git clone


5.1.1 创建目录


mkdir(创建目录),cd(进入路径),pwd(显示绝对路径)


5.1.2 初始化仓库


git init

通过git init命令把这个目录变成 Git 可以管理的仓库


5.1.3 克隆仓库

git clone https://codechina.csdn.net/codechina/help-docs

这会在当前目录下创建一个名为 help-docs的目录,并在这个目录下初始化一个.git文件夹, 从远程仓库拉取下所有数据放入.git文件夹,然后从中读取最新版本的文件的拷贝。 如果你进入到这个新建的help-docs文件夹,你会发现所有的项目文件已经在里面了,准备就绪等待后续的开发和使用。


5.1.4 自定义本地仓库名称

git clone https://codechina.csdn.net/codechina/help-docs mydocs

目录名变为了 mydocs


Git 支持多种数据传输协议。 上面的例子使用的是 https://协议,不过你也可以使用 git://协议或者使用 SSH 传输协议,比如 user@server:path/to/repo.git


5.2 添加文件: git add / git commit


5.2.1 文件添加到仓库

git add readme.txt


5.2.2 文件提交到仓库

$ git commit -m “wrote a readme file”


这里简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。


1 file changed:1个文件被改动(我们新添加的readme.txt文件)

2 insertions:插入了两行内容(readme.txt有两行内容)

为什么 Git 添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."


5.3 查看修改: git status / git diff


5.3.1 获取状态


当你修改readme.txt文件时,用git status来获取状态


0a2653c851af460fa595bd959398a8f1.png


5.3.2 比较修改内容


git diff这个命令查看相较于上一次暂存都修改了些什么内容了

0a2653c851af460fa595bd959398a8f1.png

知道了对readme.txt作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两步,第一步是git add:

$ git add readme.txt


同样没有任何输出。在执行第二步git commit之前,我们再运行git status看看当前仓库的状态:

$ git status

On branch master

Changes to be committed:

(use “git reset HEAD …” to unstage)

modified:   readme.txt


git status告诉我们,将要被提交的修改包括readme.txt,下一步,就可以放心地提交了:

$ git commit -m “add distributed”

[master e55063a] add distributed

1 file changed, 1 insertion(+), 1 deletion(-)

提交后,我们再用git status命令看看仓库的当前状态:

$ git status

On branch master

nothing to commit, working tree clean


Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working tree clean)的。


5.4 恢复文件: git log / git reset


5.4.1 查看全部commit命令


git log


0a2653c851af460fa595bd959398a8f1.png

简约点:--pretty=oneline

git log --pretty=oneline0a2653c851af460fa595bd959398a8f1.png

可以取别名git lg


5.4.2 退回到历史版本

e55063a - (HEAD -> master) add distributed (4 minutes ago)  

50ed06b - wrote a readme file (6 minutes ago)

Git 必须知道当前版本是哪个版本,在 Git 中,用HEAD表示当前版本,也就是最新的提交e55063a,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

git reset --hard HEAD^


很快,仅仅是将指针移动


0a2653c851af460fa595bd959398a8f1.png


5.4.3 移动HEAD指针


gitreflog


Git 提供了一个命令git reflog用来记录你的每一次命令,当你用git reset --hard HEAD^回退到wrote a readme file版本时,再想恢复到add distributed,就可以通过git reflog命令找到add distributed的commit id。


0a2653c851af460fa595bd959398a8f1.png


从上面的输出可以看到,add distributed的commit id是e55063a,现在,我们就可以通过 git reset --hard e55063a切换到最新的版本上了


相关文章
|
7月前
|
Linux 开发工具 C语言
Linux的学习之路:7、yum与git
Linux的学习之路:7、yum与git
66 0
|
JSON 前端开发 JavaScript
前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(一)
前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(一)
594 0
|
23天前
|
开发工具 git
学习Git的最佳实践有哪些?
遵循这些最佳实践,能让你更高效地使用 Git,更好地管理项目的版本和协作。
|
23天前
|
存储 开发工具 git
Git 学习----基本概念
理解这些基本概念是掌握 Git 操作的重要基础,它们为有效地管理项目的版本和开发过程提供了支持。通过不断实践和使用 Git,开发者可以更加高效地协作和管理项目的演变
|
2月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
137 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
2月前
|
Shell 开发工具 git
git学习三:git使用:删除仓库,删除仓库内文件
通过GitHub的设置页面删除仓库,以及如何使用Git命令行删除仓库中的文件或文件夹。
179 1
git学习三:git使用:删除仓库,删除仓库内文件
|
6月前
|
存储 网络安全 开发工具
【GIT】Git常用命令学习
【GIT】Git常用命令学习
69 1
|
2月前
|
Unix Shell 网络安全
git学习六:(bug总结)git@github.com: Permission denied (publickey).等
本文是关于解决在使用Git和GitHub时遇到的“git@github.com: Permission denied (publickey)”错误的指南。文章提供了详细的步骤,包括确认SSH Agent运行状态、检查密钥配置、确保密钥匹配、验证仓库URL、检查权限和代理设置,以及配置SSH文件。这些步骤帮助用户诊断并解决SSH认证问题。
215 0
|
2月前
|
编译器 网络安全 开发工具
git学习五:切换本地仓库出现的问题。修改git配置初始化。error:src refspec master does not match any。错误总结,送上几个案例
这篇文章是关于Git使用中遇到的一些问题及其解决方案的总结,包括切换本地仓库时的问题、修改Git初始化配置、以及解决"error: src refspec master does not match any"错误等。
68 0
|
7月前
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
208 0