^-^
用舍由时,行藏在我
git的使用
  1. 添加、提交
  2. 查看本地修改内容
  3. 查看提交日志和恢复到指定版本
  4. 一个文件修改了如何撤销?对于文件的状态有下面几种情况:
  5. 推送到远程仓库
  6. 分支

git 版本管理真的是超级方便。分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!

对于文本类文件能够知道增加、删除了哪些内容(对于二进制文件 图片、word,就很难管理了)。Git管理的是修改,而不是文件。其中,我们要明白两个概念:工作区和暂存区。工作区是我们正常工程文件下的区域,暂存区是.git文件夹下的,当我们git add .文件后 文件被添加至stage暂存区。


Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)-讲的非常好!

文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

添加、提交

git init
git add readme.txt -- 一次可以多次添加文件,再一起commit
git commit -m "add readme.txt"

查看本地修改内容

git satus -- 查看暂存区和工作区文件的状态:哪些文件做了修改、哪些文件还未提交。
git diff readme.txt -- 也可以不加具体的文件,查看暂存区和工作区文件的修改区别。

查看提交日志和恢复到指定版本

git log -- 查看提交记录 记录了每一次提交的内容和commitid
git log --pretty=oneline --显示更简洁的log信息
git reset --hard xxx  -- xxx表示commitid  会退到指定的版本。这个时候再git log查看 已经到了该版本啦

当回退到指定版本后,想恢复,但是这个时候没办法在控制台找到commitid了,这个时候

git reflog
---- 记录了每一次提交的id
381c40d HEAD@{0}: reset: moving to 381c4
f83abc6 HEAD@{1}: reset: moving to f83abc
381c40d HEAD@{2}: reset: moving to 381c
f83abc6 HEAD@{3}: reset: moving to HEAD^
381c40d HEAD@{4}: commit: all
f83abc6 HEAD@{5}: commit (initial): wrote a readme file

一个文件修改了如何撤销?对于文件的状态有下面几种情况:

  1. 文件修改了没有git add 到缓存区 – git status查看,根据提示修改
# 位于分支 master
# 尚未暂存以备提交的变更:
#   (使用 "git add <file>..." 更新要提交的内容)
#   (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
#       修改:      test.txt
  1. 文件git add到了缓存区 – 同理
  2. 文件git commit 到了分支 –git reset版本回退
  3. 文件git push到了远程

推送到远程仓库

本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要设置:
远程仓库 - 廖雪峰的官方网站 (liaoxuefeng.com)

 ssh-keygen -t rsa -C "youremail@example.com"

然后在github中添加公共钥匙。

git remote add origin git@github.com:hi-nikola/learngit.git      -- ssh链接
git push -u origin master    --  git push origin master 

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,不带u了。

查看git户主名和邮箱

git config user.name
git config user.email

# 绑定
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

# 解绑
git config --global --unset user.name "Your Name"
git config --global --unset user.email "you@example.com"

查看或者删除remote

git remote -v
git remote rm origin

分支

git branch -m 旧名字 新名字 
git branch -m master main

查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>或者git switch <name>
创建+切换分支:git checkout -b <name>或者git switch -c <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>

合并分支以及解决冲突:解决冲突 - 廖雪峰的官方网站 (liaoxuefeng.com)