Git教程总结:
---------------------------------------------------------------------------------------------------------
git-----|
|----安装git----|
| |--Ubuntu--|
| | 安装git:
| | $ sudo apt-get install git
| | 配置git:
| | $ git config --global user.name "Your Name"
| | $ git config --global user.email "email@example.com"
|
|
|--创建版本库---|
| |--创建本地git工作目录--|
| | $ mkdir git
| | $ cd git
| | $ git init
| |
| |--第一次提交到本地git库--|
| | $ vim liuxu0315.txt
| | $ git add liuxu0315.txt
| | $ git commit -m "add liuxu0315.txt"
|
|
|--时光机穿梭---|
| |-------|
| | 查看当前状态:
| | $ git status
| | 查看difference:
| | $ git diff
| |
| |--版本退回--|
| |-------查看提交历史记录:
| | $ git log
| | $ git log --pretty=oneline
| |-------退回上一个版本:
| | $ git reset --hard HEAD^
| | 退回上上一个版本:
| | $ git reset --hard HEAD^^
| | 退回往上100个版本:
| | $ git reset --hard HEAD~100
| |-------从上一版本回到当前版本:
| | 查看历史命令:
| | $ git relog
| | (得到当前版本commid id:3628164)
| | 返回到当前版本:
| | $ git reset --hard 3628164
| |
| |--撤销修改--|
| |-------修改文件:
| | $ vim liuxu0315.txt
| | (噢,改错了,要返回修改前)
| | 撤销修改:
| | $ git checkout -- liuxu0315.txt
| |-------再次修改:
| | $ vim liuxu0315.txt
| | $ git add liuxu0315.txt
| | (完蛋了,又修改错了)
| | 取消此次add:
| | $ git reset HEAD liuxu0315.txt
| | 撤销修改:
| | $ git checkout -- liuxu0315.txt
| |
| |--删除文件--|
| | $ rm liuxu0315.txt
| | $ git rm liuxu0315.txt
| | $ git commit -m "rm liuxu0315.txt"
|
|
|---远程仓库----|
| |--创建设置SSH Key--|
| | 1.创建SSH Key:
| | $ ssh-keygen -t rsa -C "youremail@example.com"
| | 2.将~/.ssh/id_rsa.pub复制到github的"个人设置-->SSH Keys"处。
| |
| |--添加远程库--|
| | 1.在github中先添加好一个仓库。
| | (得到一个如:git@github.com:liuxu0315/helloworld.git 这样地址)
| | (liuxu0315则是你的github ID)
| | 2.在本地仓库下运行:
| | $ git remote add origin git@github.com:liuxu0315/helloworld.git
| | 此时可以推送到远程github仓库了:
| | $ git push -u origin master
| | (参数 -u 是将本地master分支和远程master分支关联起来)
| |
| |--克隆远程仓库--|
| | $ git clone git@github.com:michaelliao/learngit.git
|
|
|---远程分支----|
| |--创建与合并分支--|
| |-------创建并跳转到dev分支:
| | $ git checkout -b dev
| | (git checkout为跳转到分支,-b为新建分支)
| |-------创建dev分支:
| | $ git branch dev
| | 跳转到dev分支:
| | $ git checkout dev
| |-------查看分支:
| | $ git branch
| |
| |-------然后在dev分支上工作:
| | $ vim dev.txt
| | $ git add dev.txt
| | $ git commit -m "add dev.txt"
| |-------回到master合并dev分支:
| | $ git checkout master
| | $ git merge dev
| |-------删除dev分支:
| | $ git branch -d dev
| |
| |--解决冲突--|
| | (当在dev和master同时修改dev.txt文件后,)
| | (在master中合并dev分支是会冲突)
| | (此时需要编辑一下dev.txt解决掉冲突,)
| | (然后再add , commit提交)
| |
| |--工作区暂存--|
| | (用于:需要跳转到其他分支,)
| | ( 又不想commit当前分支,)
| | ( 也不想放弃当前修改时)
| |
| |-------保存当前工作现场:
| | $ git stash
| | (跳转到其他分支工作后再回来此分支)
| |-------恢复工作现场:
| | 1.查看以保存的stash内容:
| | $ git stash list
| | (可以看到0个或多个stash@{n},n=1,2,3,4...)
| | 2.恢复工作现场:
| | $ git stash apply
| | (或者)
| | $ git stash apply stash@{0}
| | 3.删除stash内容:
| | $ git stash drop
| |---------------直接恢复并删除stash内容:
| | $ git stash pop
|
|
|---标签管理----|
| |--创建标签--|
| |-------快速创建标签:(例:$ git tag
)
| | $ git tag v1.0
| | 查看标签:
| | $ git tag
| | 给以前的commit id为6224937打标签:
| | $ git tag v0.9 6224937
| | 查看标签详细信息:
| | $ git show v0.9
| |-------创建带说明的标签(commit为3628164):
| | $ git tag -a v0.1 -m "version 1.0" 3628164
| | 创建带GPG密钥的标签(确定本地已经配置和GPG KEY):
| | $ git tag -s v0.2 -m "signed version 0.2 released" fec145a
| |
| |--操作标签--|
| |-------删除本地某个标签:
| | $ git tag -d v0.1
| | 推送某个标签到远程仓库:
| | $ git push origin v1.0
| | 一次全部推送未推送的本地标签:
| | $ git push origin --tags
| |-------删除远程仓库标签:
| | $ git tag -d v0.9
| | $ git push origin :refs/tags/v0.9
|
|
|---自定义Git---|
| |--忽略特殊文件--|
| | 1.将忽略的文件写入.gitignore中
| | $ vim .gitignore
| | (如:)
| | (dev.txt)
| | (*.class)
| | (temp/)
| | 2.提交.gitignore到git仓库
| | $ git add .gitignore
| | $ git commit -m "add .gitigonre"
| |
| |--配置别名--|
| | $ git config --global alias.st status
| | $ git st
| | $ git config --global alias.co checkout
| | $ git config --global alias.ci commit
| | $ git config --global alias.br branch
| | $ git config --global alias.unstage 'reset HEAD'
| | $ git config --global alias.last 'log -l'
| | $ git config --llobal alias.lg "log --color --graph
| | --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset
| | %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
| | $ git lg
| |
| | (以上配置放在 .git/config 中,)
| | (个人配置文件在 ~/.gitconfig 中)
阅读(1707) | 评论(0) | 转发(0) |