安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
1.创建版本库
选择合适地方,创建一个空目录
mkdir learngit
cd learngit
pwd
/Users/michael/learngit
pwd命令用于显示当前目录,路径表示这个仓库的位置
通过git init 将这个目录变成GIT可以管理的仓库
把文件添加到版本库
在仓库中添加新文件
git add readme.txt
用命令告诉GIT将文件提交到仓库
git commit -m "write a readme file"
时刻掌握仓库当前状态
git status
查看diffrence,给出前后两次差异
git diff
xdq
查看历史记录
git log
若嫌弃信息太多,可以加上
git log --pretty=oneline
返回上一个版本
git reset --hard HEAD^
查看是否是上一个版本的内容
cat readme.txt
后悔药1
git reset --har +版本号
后悔药2
git reflog 查看版本号
查看工作区和最新版本的区别
git diff HEAD -- readme.txt
丢弃工作区的修改
git checkout -- file
2.删除文件
rm test.txt
选择
1.git commit 提交工作区的更改到版本库
2.git checkout -- test.txt 恢复被误删版本
3.远程仓库
1>创建SSH key
终端
$ ssh-keygen -t rsa -C "youremail@example.com"
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
2>添加远程库
将已有的本地仓库与远程仓库关联
cd learngit 进入本地仓库
git remote add origin git@github.com:michaelliao/learngit.git
git remote add origin https://github.com/decadeheart/learngit.git
将本地内容推送到远程,推送当前分支master,由于远程库为空,此时推送加上-u参数
git push -u origin master
从现在起,只要本地作了提交,就可以通过命令:
git pushi origin master
将本地分支最新修改推送到远程仓库
3>从远程仓库克隆
$ git clone git@github.com:michaelliao/gitskills.git
git clone http:\
也可以
4>分支管理
可以创建属于自己的分支,他人无法看到,开发完毕后再合并到原来的分支
创建dev分支,切换到新分支
git checkout -b dev
查看当前分支
git branch
切换到master分支,dev分支工作已完成
git checkout master
此时在dev添加的内容,master中并没有
合并分支
现在将dev分支合并到marster上
git merge dev
小结
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
5>解决冲突
git log --graph 可以查看分支合并图
4.标签管理
1>创建标签
git checkout master
切换到要打标签的分支上
git tag v1.0
即可打新标签
git tag
可以查看所有标签
git tag -a <tagname> -m "blablabla..."可以指定标签信息;
git tag -s <tagname> -m "blablabla..."可以用
PGP签名标签;
2>操作标签
命令git push origin <tagname>可以推送一个本地标签;
命令git push origin --tags可以推送全部未推送过的本地标签;
命令git tag -d <tagname>可以删除一个本地标签;
命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
3>