Git
git安装
pkg insrall git
git登陆
git config --global user.name sxgpyjg
git config --global user.email sxgpyjg@qq.com
# 彩色的 git 输出:
git config --global color.ui true
# 显示历史记录时,每个提交的信息只显示一行:
git config --global format.pretty oneline
初始化仓库
mkdir gitdemo && cd gitdemo
git init
# Initialized empty Git repository in /root/gitdemo/.git/
生成库
git init // 在当前目录新建一个Git代码库
新建文件,文件夹,编辑,改名,移动文件
mkdir nodejs //创建文件夹nodejs
cd nodejs //切换到nodejs目录下
touch 文件名 //新建文件
vim 文件名 //编辑文件
git mv [file-original] [file-renamed] //改文件名并放入暂存区
git mv ./.git/ ./README.md ../ // 表示把当前目录下的.git文件和README.md文件移动到上一层目录下,之后使用ls -al命令查看该目录发现确实被移动了
添加文件到本地库
echo "# myblog" >> README.md //在当前目录下新建README.md,且文件内容为'myblog';如果目录下已经有文件,请省略这一步
git add README.md //将README.md文件提交到问题暂存区
git commit -m "first commit" //将暂存区文件提交到本地仓库,且本次提交记录为'first commit'
git status -sb //显示当前所有文件的状态
建立连接
git push //将本地仓库修改内容同步到远程仓库
git pull //将远程库修改的内容下载到本地库
删除远程文件或文件夹保留本地
//首先cd命令进入要删除的文件或者文件的根目录,directory代表要删除文件相对的当前的目录的路径跟文件名
git rm -r --cached directory
git commit -m "desption"
git push origin master
git push github master //推送到GitHub远程库
git push gitee master //推送到码云远程库
//重点:删除哪个远程库文件就推送到哪个库
上传项目
跟踪项目文件夹中的所有文件和文件夹
git add -A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
输入本次的提交说明,准备提交暂存区中的更改的已跟踪文件,单引号内为说明内容
git commit -m 'first_commit'
关联远程仓库,添加后,远程库的名字就是 origin,这是 Git 默认的叫法,也可以改成别的,但是 origin 这个名字一看就知道是远程库。
git remote add origin https://github.com/sxgpyjg/sxgpyjg.github.io
如果关联出现错误 fatal: remote origin already exists,则执行下列语句再进行关联
git remote rm origin
把本地库的所有内容推送到远程库上
git push -u origin master
git push -u github master //GitHub远程库
git push -u gitee master //码云库
如果在推送时出现错误 error:failed to push som refs to…,则执行下列语句
git pull origin master
git pull github master //GitHub远程库
git pull gitee master //码云库
将远程仓库 Github 上的文件拉下来合并之后重新推送上去
既关联GitHub,又关联码云
先关联GitHub的远程库
git remote add github git@github.com:sxgpyjg/sxgpyjg.github.io
//注意,远程库的名称叫github,不叫origin了。
接着,再关联码云的远程库
git remote add gitee git@gitee.com:sxgpyjg/learngit.git
//同样注意,远程库的名称叫gitee,不叫origin。
现在,我们用git remote -v查看远程库信息,可以看到两个远程库:
git remote -v
gitee git@gitee.com:sxgpyjg/learngit.git (fetch)
gitee git@gitee.com:sxgpyjg/learngit.git (push)
github git@github.com:sxgpyjg/sxgpyjg.github.io (fetch)
github git@github.com:sxgpyjg/sxgpyjg.github.io (push)
推送到远程库
//如果要推送到GitHub,使用命令
git push github master
//如果要推送到码云,使用命令
git push gitee master
这样一来,我们的本地库就可以同时与多个远程库互相同步
恢复删除的文件
一、git ls-files -d 查看删除了的文件
1.查看当前状态可以看到删除了一个index.js;
git status
2.查看当前项目中删除了的文件
git ls-files -d
3.恢复删除的单个文件
git checkout -- javascript/index.js
4.如果要恢复多个被删除的文件,直接输入
git ls-files -d | xargs git checkout --
二、查看修改了的文件
git ls-files -m
恢复修改文件的方法与恢复删除文件的方法一样,只是 -d 换成 -m;
gitlab中添加了sshkey push/pull时还需要输入用户名密码解决办法
输入命令
git config --global credential.helper store
然后操作pull/push 会让输入用户名密码,第一次输入进去。下次再操作pull/push时就不需要输入用户名密码了。