1. 新建Git仓库
git init
2. 文件添加到仓库
git add read.txt
3. 文件提交到仓库
git commit -m "comment"
4. 查看仓库的状态
git status
5. 查看文件的状态
git diff read.txt
6. 查看历史命令
git log
如果嫌输出的东西太多可以加上
git log --pretty=oneline
7. 返回上一版本
git reset --hard HEAD^
8. 返回某一版本
git reset --hard 3628164
9. 查看每个操作的commit id
git reflog
10. 基本流程
- 当初始化版本库的时候,创建唯一的一个master分支
- Git中有工作区,暂存区(stage),分支
- git add将文件加入暂存区
- git commit将暂存区的修改加入分支之中
11. 丢掉工作区的修改
git checkout -- readme.txt
如果没有--就变成切换成另一个分区,其实就是用分支中的数据替换工作区的数据
12. 撤销暂存区的修改
git reset HEAD readme.txt
如果文件已经add了,而没有commit,可以将暂存区的修改撤销到工作区
13. 删除文件
git rm readme.txt
14. 创建SSHKey
ssh-keygen -t rsa -C "youremail@example.com"
15. 将本地库推与远程库关联
git remote add origin git@github.com:michaelliao/learngit.git
远程库的默认名字是origin,下一步可以将本地库推送到远程库
git push -u origin master
git push的格式如下
git push <远程主机名> <本地分支名>:<远程分支名>
git push origin master
省略了远程分支名,将本地的master分支推送到远程主机的master分支。
git push origin :master
省略了本地分支名,推送一个空的本地分支到远程主机的master分支,等同于删除了远程主机的master分支。
git push origin
将本地分支推送到origin主机的对应分支。
git push -f
利用强覆盖方式用你本地的代码替代git仓库内的内容。
将本地库master分支推送到远程库
16. 从远程库克隆
git clone git@github.com:michaelliao/gitskills.git
17. 新分支
git checkout -b dev
创建新分支dev,并且切换到新分支dev,相当于下两条命令
git branch dev
git checkout dev
git branch 可以查看当前的分支情况
git merge dev 将dev分支合并到master上
git branch -d dev 删除dev分支
18. 多个ssh-key管理
新建ssh-key
此时不要使用默认路径可以使用~/.ssh/id_rsa_donin。
执行以下命令
git add id_rsa_donin
在.ssh目录下创建新的文件
# ~/.ssh/config
Host donin
HostName github.com
User donin
IdentityFile ~/.ssh/id_rsa_donin
#Second GitHub
Host def
HostName github.com
User ecloud
IdentityFile ~/.ssh/id_rsa
在git项目文件夹下执行
#取消全局设置
git config --global --unset user.name
git config --global --unset user.email
git config user.email "youremail@example.com"
git config user.name "donin"
关联项目的时候
#用donin替换域名github.com
git remote add origin git@donin:first/test-first.git