如何使用Git和Github的补充
提示
本篇文章是继上篇Git和GitHub学习的扩展与补充,参考的是廖雪峰老师的Git教程。
本篇文章是继如何使用Git和GitHub的扩展与补充,参考的是廖雪峰老师的Git教程 (opens new window)。
# 一、时光穿梭机
# 1. git log
使用以下命令可以更简洁的显示commit信息
git log --pretty=oneline
# 2. 回退到以前版本
- 使用以下命令即可回退到上一版本
git reset --hard HEAD^
**注:**HEAD指向的是当前版本。
- 使用以下命令即可回退到以前的版本
git reset -- hard commit_id
- 如果回退到以前的版本后想反悔,可以使用以下命令来查看你前几次的命令以及对应的Commit ID
git relog
# 3. 查看工作区与版本库文件的不同
使用以下命令就可以查看工作区和版本库里面该文件最新版本的区别
git diff HEAD -- 文件名
# 4. 撤销更改
当你还未将更改添加到暂存区时可以使用以下命令撤销更改
git checkout -- 文件名
当你不小心git add
到暂存区时可以使用以下命令放回工作区
git reset HEAD 文件名
# 5. 删除
在工作区你可以使用以下命令删除没用的文件
rm 文件名
当你在工作区删除了该文件后可以选择使用以下命令删除版本库中该文件
git rm 文件名
然后 或者删错了,想要恢复该文件
git checkout -- 文件名
# 二、远程仓库
# 6. 远程仓库
在GitHub网站上注册帐号
设置SSH加密 1.创建SSH Key
ssh-keygen -t rsa -b 4096 -C "youremail@example.com"
2.在主目录中找到.ssh
目录,在里面找到id_rsa.pub
文件,用编辑器打开,并复制密钥。 3.登录GitHub,在“Account Settings”中找到“SSH Keys”,然后点击“Add SSH Key”,填上任意Title,最后在Key文本中粘贴id_rsa.pub
的密钥。
# 7. 添加远程库
- 要关联一个远程库使用命令
git remote add origin git@server-name:path/repo-name.git
- 然后使用命令
git push -u origin master
第一次推送master分支的所有内容
# 三、分支管理
# 8. 创建与合并分支
可以使用以下命令创建并切换到新的分支
git checkout -b dev
删除分支
git branch -d dev
禁用Fast forward
模式
git merge --no-ff -m "merge with no-ff" dev
# 9. 解决冲突
使用带参数的git log
更清晰的查看分支合并图
git log --graph --pretty=oneline --abbrev-commit
# 10. Bug分支
当你工作到一半时,被某些事情打断,比如突然要去修复一个Bug,你可以使用下面的命令将当前工作暂停一下,等Bug修复完了,回来继续工作
git stash
修复完Bug以后,切换回dev
分支,用git stash list
命令查看暂停的工作
然后用git stash apply
恢复,并用git stash drop
来删除stash内容;当然也可以使用git stash pop
一步到位,恢复并删除stash内容。
# 11.强制删除分支
在开发工程中,分支合并以后,可以使用下面的命令删除
git branch -d feature-vulcan
但是对于没有合并的分支,如果要删除,需要使用强制删除命令
git branch -D feature-vulcan
# 12.多人协作
在本地创建和远程对应的分支
git checkout -b branch-name origin/branch-name
建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name
# 四、标签管理
# 13.标签管理
- 使用以下命令为所在分支打标签
git tag v1.0
- 可以使用命令
git tag
查看标签 - 也可以用下面的命令对以前的提交打标签
git tag v0.9 commit_id
- 可以用
git show v1.0
查看标签的信息 - 还可以创建带有说明的标签,用
-a
指定标签,-m
指定说明文字
git tag -a v0.1 -m "version 0.1 released" commit_id
- 如果标签打错了,也可以删除
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
# 14.忽略特殊文件
你可以在Git工作区的根目录下创建一个特殊的.gitignore
文件,把尧忽略的文件名填进去,然后提交到Git,Git就会自动忽略这些文件。
更多规则请点击此处了解 (opens new window)
当你的文件被.gitignore
忽略时,可以使用-f
强制添加到Git
git add -f App.class
也可以查看.gitignore
当中的规则
git check-ignore -v App.class
# 15.配置别名
使用下面的命令,以后就可以用git st
来表示git status
git config --global alias.st status
每个仓库的Git配置文件都放在.git/config
文件中;而当前用户的Git配置文件放在用户目录下的一个隐藏文件.gitconfig
中
# 16.搭建Git服务器
由于我不是很需要,所以就直接附上链接 (opens new window)了。
感谢阅读