本文为经验 所谈 使用版本为ubuntu20.04
1 ubuntu的git初始化
1.安装git
sudo apt-get install git
可通过git --version
命令查看,正常输出git版本号即安装成功。
2.配置用户名和邮箱名
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
配置完后可以通过以下命令查看
git config user.name
git config user.email
3.创建ssh公钥
创建公钥文件,生成的公钥文件会保存在本机的~/.ssh目录下
ssh-keygen -C 'example@example.com' -t rsa
出现的第一个代表储存位置(你也可以直接按回车 直接省事到底)
4 .拿出公钥填入GitHub
cd ~/.ssh
cat id_rsa.pub
#默认储存位置
复制即可
github部分
点击个人设置,即右上角 然后个人设置 粘贴即可
将刚才保存的id_rsa.pub文件内容复制到Key字段,Title自己起个名字,最好是能代表当前所配置的机器的名字。然后点Add SSH key,会要求输入当前github账号的密码,按要求输入就行了。
2 git本地操作
2.1添加文件
1 创建仓库并初始化
仓库(repository)也叫版本库,可以看做一个目录,这个目录里的所以文件都由Git进行管理,每个文件的修改、删除,Git都能跟踪
- 1.打开你的项目文件
- 2 输入
git init
会输出
Initialized empty Git repository in /home/ps/JJ_Projects/learnGit/.git/
,表示成功初始化git仓库。
这时会发现该目录中多出了一个.git目录,这就是git来跟踪管理版本库的
2.添加文件
以readme做例子
1.readme.md
我们首先创建一个README文件,并写入一些内容:
touch readme.md
vim readme.md#自己随便写点cat readme.md # 查看文件内容
2.执行git add命令,将文件添加的仓库。
git add README.txt
3 执行git commit命令,将文件提交的仓库。
git commit -m "Submit a new file." # 双引号内是本次提交的注释,原则上可以随便写,但是尽量能表达出本次提交的改动。-m -m 参数后面跟着的是提交信息,描述你所做的更改
输出
master (root-commit) 7e21c1f] Submit a new file.
1 file changed, 1 insertion(+)
create mode 100644 README.tx
2.2 修改文件
1.修改文件内容‘
vim readme.md
2.查看仓库状态
git status
On branch master
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: readme.md
意思很明显:README.txt文件提劲被修改过了,但是现在还没有改动需要git submit,因为要先git add。
3 查看文件改动
git diff
4 就像上面一样添加到本地仓库
2.4 版本回退
使用git进行版本控制,重要的用途之一就是进行版本回退了,我们来看一下怎样操作。
1.我们先使用git log
命令来查看一下仓库的修改日志
2.使用git reset命令,将版本回退
git reset --hard HEAD^ # HEAD表示当前版本,HEAD^代表上一个版本
输出:
HEAD is now at 7e21c1f Submit a new file.
2.5工作区和暂存区
1.工作区(Working Directory),我们创建的learnGit 目录就是一个工作区。
- 版本库,仓库(Repository),工作区有个隐藏目录 .git ,这个不算工作区,而是 Git 的版本库。
3.版本库里面的 index(stage) 文件叫暂存区,还有Git为我们自动创建的第一个分支 master ,以及指向 master 的一个指针叫做 HEAD。
关系
前面我们提到过,如果我们想把文件添加到Git里面时,需要分两步:
第一步是用 git add 把文件添加进去,实际上就是把文件修改添加到暂存区。
第二步是用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支。(我们现在只有唯一一个分支 master,所以现在就是往 master 分支上提交
2.6 删除文件与恢复
- 我们先准备一个待删除的文件test.txt,并add、commit到仓库,
touch test.txt
vim test.txt # 添加内容 delete test
git add test.txt
git commit -m "delete test"
# 输出:
[master 08ffedc] delete test1 file changed, 1 insertion(+)create mode 100644 test.txt
2.工作区中直接删除test.py
rm test.py
这时有两种情况:
-
(1) 工作区中误删文件,需要恢复
-
(2) 确实要删除文件,应该把删除操作提交到仓库
3.工作区中误删文件,需要恢复
这种情况其实与上面的撤销修改情况1是一样的,要将工作区的动作撤销掉,而这在我们的仓库中还是存在的,所以还是要请出我们的checkout命令就好了。
git checkout -- test.txt
ls
# 输出:
README.txt test.txt
4.确实要删除文件,应该把删除操作提交到仓库
我们先把刚刚恢复的test.txt再从工作区删掉。
rm test.txt
既然我们确实要删掉该文件,就直接再用git rm删除:
git rm test.py
# 输出:
rm 'test.txt'
再将删除操作提交到仓库:
git commit -m "delete test"
# 输出:
[master 9182ef7] delete test1 file changed, 1 deletion(-)delete mode 100644 test.txt
这个发现误删可以用版本回退
3 github远程操作
1.添加远程仓库
就是ssh下面的网址
git remote add origin <你的网址>
通过一下命令查看远程仓库是否被添加
git remote -v
2.提交仓库
git push -u origin master
因为远程库是空的,所以我们在第一次推送 master 分支时,要加上 -u 参数,Git不但会把本地的master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令。
3.输入和令牌
提交的时候会输入令牌和用户名
假如你是仓库所有者 你直接用自己的用户名 和去创建令牌
1.个人设置的开发者设置
2.点击tokens(classic)
3.生成令牌
选下面哪个 勾选repo 一定要保存(只出现一次) 你提交的时候要验证