努力经营当下,直至未来明朗!
此时我在我的Xshell上的服务器来进行安装(centos)。
git --version
sudo yum remove git -y
补充:清屏的话使用clear
安装git
sudo yum install git -y
git --version
git --version
sudo apt-get remove git -y
补充:清屏的话使用clear
安装git
sudo apt-get install git -y
git --version
1)首先创建一个目录
mkdir gitcode
-- [即: mkdir 目录名]
2)切换到该目录底下
cd gitcode/
-- [即: cd 目录名/]
3)进行目录的展示
ls
4)在该目录下创建空的Git仓库:.git
git init
5)显示当前目录下所有文件(Ubuntu下适用)
la
6) 树形展示该目录下的所有文件:千万不要手动修改任何文件!!
tree .git/
git config
git config user.name "xxx(实际name)"
git config user.email "xxx(实际email)"
git config -l
git config --unset user.name
git config --unset user.name
git config --global user.name "xxx"
git config --global user.name "xxx"
touch readMe
如何将工作区中的内容使用git来进行管理:
1)对工作区进行修改操作(如:新增、修改、删除)之后进行add
操作则进入版本库的暂存区
2)然后对暂存区中的内容进行commit
之后就被提交到master分支底下
3)此时就将工作区中的内容真正放到了git仓库下进行管理
objects对象库:工作区文件在执行add命令之后,修改的工作区内容就会被写入对象库的一个新的git对象中,即:维护了文件的版本
暂存区中存储的不是一个个对象,而是对象索引;master分支中也是一样的,存储的也是对象的索引,也是比较轻量的。
因为仓库是刚init的,所以目前还没有暂存区,所以tree .git
之后看不到index是正常的。
编辑文件: vim 文件名
保存并退出: :wq
在屏幕上打印文件内容:cat 文件名
git add 文件名1 文件名2 ··· // 提交该文件
git add . // 提交该目录下所有文件
git commit -m "提交的细节描述"
补充:如果在进行该操作时出现了以下异常:
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'root@hecs-279575.(none)')
[root@hecs-279575 gitcode]# git log
fatal: bad default revision 'HEAD'
此时,只需要在当前输入下面两句命令,把引号里的改成自己的邮箱和账号就OK了,然后就可以继续操作了
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
git log
git log --pretty=one-line // 打印一行漂亮直观日志
根据commit_id来打印文件
git cat-file -p commit_id
git diff 文件名
git diff HEAD -- 文件名
版本回退命令:
git reset [--soft | --mixed | --hard] [HEAD] // 本质回退的是版本库的内容;还可以回退到当前版本,即暂存区和工作区代码回退到和版本库中一致
–soft :只回退版本库中的内容,工作区和暂存区的内容不进行回退
–mixed(默认): 回退的是版本库和暂存区的内容,工作区的内容不进行回退
–hard: 回退版本库、暂存区、工作区的内容。(==慎用!!==工作区中的代码也被干掉的话其实是非常头疼的,直接找不回来了)
使用示例:
git reset [--hard] commit_id
// 代表回退到commit_id这个版本,该版本之后提交的内容都消失
git reset [--hard] commit_id
4. 那如果git log --pretty=oneline打印好的commit_id已经被clear,此时就使用git reflog
打印出所使用的命令进行的操作,最前面的就是commit_id,依旧可以利用该commit_id进行版本的回退
git版本回退速度很快的原因:
HEAD指针是指向master的,而master中存放的是commit_id,所以在进行版本回退的过程中其实只需要修改master的commit_id即可,将指针指向新的内容。
回退到当前版本:git reset [--mixed | --hard] HEAD [filename]
回退到当前版本的前n个版本:git reset [--mixed | --hard] HEAD^^ [filename]
(^的数量取决于回退到前n个版本)
rm [filename]
rm [filename]
git add [filename]
git commit -m "xxx"
git rm [filename] // 将文件从工作区、暂存区删除
git commit -m "xxx"