git安装好后基本设置
Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址
# 设置用户名
git config --global user.name "Your Name"
# 设置邮箱
git config --global user.email "email@example.com"
创建版本库
选择一个合适的地方,创建一个空目录,
这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”:
git init
在仓库中创建文件后,第一步,用命令git add告诉Git,把文件添加到仓库,例如readme.txt文件:
git add readme.txt
第二步,用命令git commit告诉Git,把文件提交到仓库:
git commit -m "wrote a readme file"
解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录
为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如
git add file1.txt
git add file2.txt file3.txt
git commit -m "add 3 files."
如果对readme.txt进行了修改,使用 git status
命令看看结果,git diff
这个命令查看修改内容,然后继续
git add readme.txt
git status
git commit -m "add distributed"
git status
版本回退
git log
查看历史提交
git reset --hard commit_id
进入指定版本
要重返未来,用git reflog
查看命令历史,以便确定要回到未来的哪个版本`
删除文件
- 删除本地文件
- 版本库中删除
git rm file_name
git commit -m "remark"
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本
git checkout -- file_name
远程仓库
- 创建SSH Key
ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人 - 登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送
- 关联一个远程库,使用命令
git remote add origin git@server-name:path/repo-name.git
- 关联后,使用命令
git push -u origin master
第一次推送master分支的所有内容 - 此后,每次本地提交后,只要有必要,就可以使用命令
git push origin master
推送最新修改
分支
首先,创建dev分支,然后切换到dev分支:
git checkout -b dev
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev
然后,用git branch命令查看当前分支:
git branch
git branch命令会列出所有分支,当前分支前面会标一个*号
然后,我们就可以在dev分支上正常提交,比如对readme.txt做个修改
然后提交:
git add readme.txt
git commit -m "branch test"
现在,dev分支的工作完成,我们就可以切换回master分支:
git checkout master
切换回master分支后,再查看一个readme.txt文件,刚才添加的内容不见了!因为那个提交是在dev分支上,而master分支此刻的提交点并没有变。现在,我们把dev分支的工作成果合并到master分支上:
git merge dev
合并完成后,就可以放心地删除dev分支了:
git branch -d dev
删除后,查看branch,就只剩下master分支了:
git branch
Git鼓励大量使用分支:
- 查看本地分支:
git branch
- 查看本地和远端分支:
git branch -a
- 创建分支:
git branch <name>
- 切换分支:
git checkout <name>
- 创建+切换分支:
git checkout -b <name>
- 合并某分支到当前分支:
git merge <name>
- 删除分支:
git branch -d <name>
- 克隆分支:
git clone -b branch_name branch_https
拉取远程分支到本地
- 本地建立仓库
git init
- 本地仓库与远程仓库关联
git remote add origin http_xxxx
- 拉取远程分支到本地
git pull origin branch_remote:branch_local
推送本地分支到远程分支
- 修改文件后,
git commit -a -m "xxx"
如果是添加文件,先git add
- 切换到对应分支
git checkout xxx
- 提交到远程
git push origin local:remote
创建标签
- 首先,切换到需要打标签的分支上
- 敲命令
git tag <name>
就可以打一个新标签 - 可以用命令
git tag
查看所有标签
- 命令
git tag <tagname>
用于新建一个标签,默认为HEAD,也可以指定一个commit id - 命令
git tag -a <tagname> -m "blablabla..."
可以指定标签信息 - 命令
git tag
可以查看所有标签 - 命令
git push origin <tagname>
可以推送一个本地标签 - 命令
git push origin --tags
可以推送全部未推送过的本地标签 - 命令
git tag -d <tagname>
可以删除一个本地标签 - 命令
git push origin :refs/tags/<tagname>
可以删除一个远程标签
参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000