0x01 git简介
1.安装git
$ sudo pacman -S git
# 安装完成后,还需要最后一步设置,在命令行输入
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
2.初始化一个Git仓库,使用git init
命令。
添加文件到Git仓库,分两步:
- 使用命令
git add <file>
,注意,可反复多次使用,添加多个文件; - 使用命令
git commit -m <message>
,完成。
通过git init命令把这个目录变成Git可以管理的仓库:
$ git init
$ git add test.txt
$ git commit -m "add a test file"
0x02 git简单使用
# 随时掌握工作区的状态
$ git status
# 如果git status告诉你有文件被修改过,用git diff可以查看修改内容
$ git diff
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
$ git log
$ git log --pretty=oneline
# 上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本写成HEAD~100
$ git reset --hard HEAD^
$ git reset --hard <id>
# 重返未来
$ git reflog
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
$ git checkout -- readme.txt
# 当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了
$ git rm file_path
# 当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制
$ git rm --cached file_path
0x03 远程仓库 github.com
1.生成.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人
$ ssh-keygen -t rsa -C "youremail@example.com"
2.登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
github-addkey-1
3.github创建新仓库,接着打开终端
# 本地关联远程库
$ git remote add <name> <url>
# 本地库的内容推送到远程库上
# 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程
$ git push -u <name> <branch>
git 添加多个远程仓库:
应该是 git remote add <name> <url>
其中,name
表示你要给这个远程库起的名字,url
表示这个库的地址提交的时候,先add, commit
。然后 git push <name> <branch>
就行
其中,name
表示你在上一步给它起的名字,branch
表示某一个分支