git学习及常用代码

作者: Ke_Wang | 来源:发表于2016-09-02 09:44 被阅读335次

    记录一下学习git过程中的感悟和知识点

    无意间在网上看到的图,将git的工作原理表现的淋漓尽致,特来分享下


    2016083038416QQ20160830-0.png

    解释一下:

    • workspace就是工作区,可以理解问本地的代码工作区域,不与本地仓库挂钩,只要不提交,本地仓库就不会变。
    • index 就是暂存区,因为workspace的代码在commit提交到本地仓库前需要先add到暂存区(进行检查,看查diff等操作)
    • Repository 是本地的仓库,顾名思义就是存储本地代码和修改记录的地方,跟远程仓库其实是一样的,只不过是本地的而已,他是从远程clone下来的。
    • Remote就是远程的仓库,里面存放代码和修改记录等信息,与本地仓不同的就是在网上放着, 不怕电脑GG,可以让其他clone到他们的本地。

    操作:

    • add,将本次工作修改的代码提交到暂存区(index)等待查看等,
    • commit 将本次的修改提交到本地仓库,后缀本次修改的备注(一定要先add了再commit)
    • checkout 新建一个本地的分支来工作,一般是在新添功能的时候做的,新建一个分支不影响主分支,完成后再合并到主分支
    • push 将本地仓库的修改推到远程仓库分支,使远程仓库获取最新的代码,(一般都是要推到远程的分支的,一般远程的主分支是上线版本,不能轻易动的,远程分支上用来测试升级版的)
    • fetch,默认情况下,取回所有分支的更新,如果只想取回特定分支的更新,可以指定分支名。
    • clone ,完整的将仓库master分支上的代码全部clone下来
    • pull 本地获取远程的更新。

    最常用的一些git命令

    配置

    • git init # 初始化本地git仓库(创建新仓库)

    • git config --global user.name "xxx" 配置用户名

    • git config --global user.email "xxx@xxx.com" 配置邮件

    • git config --global color.ui true 给git status等命令自动着色

    • git config --global color.status auto

    • git config --global color.diff auto

    • git config --global color.branch auto

    • git config --global color.interactive auto

    正文

    • git clone git或者ssh://git@000.000.0.0/XX.git clone远程仓库

    • git status 查看当前版本状态(是否修改)

    • git add XXX 添加XXX文件至暂存区

    • git add . 增加当前子目录下所有更改过的文件至暂存区

    • git commit -m 'xxx' 提交(后面加本次提交信息,不写会报奇怪的错)

    • git commit --amend -m 'xxx' 合并上一次提交(用于反复修改)

    • git commit -am 'xxx' 将add和commit合为一步

    • git rm xxx 删除暂存区中的文件

    • git rm -r * 递归删除

    • git log 显示提交日志

    • git log -1 显示1行日志 -n为n行

    • git log --stat 显示提交日志及相关变动文件
    • git show XXXXX 显示某个提交的详细内容

    • git tag 显示已存在的tag

    • git tag -a v2.0 -m 'xxx' 增加v2.0的tag

    • git show v2.0 显示v2.0的日志及详细内容

    • git log v2.0 显示v2.0的日志

    • git diff 显示所有未添加至暂存区的变更

    • git diff --cached 显示所有已添加index但还未commit的变更

    • git diff HEAD^ 比较与上一个版本的差异

    • git diff origin/master..master 比较本地master分支上没有的远程主分支区别

    • git remote add origin git+ssh:// 增加远程定义(用于push/pull/fetch)

    • git branch 显示本地分支

    • git branch --contains xxxx 显示包含提交xxxx的分支

    • git branch -a 显示所有分支,本地和远程的

    • git branch -r 显示所有原创分支

    • git branch --merged 显示所有已合并到当前分支的分支

    • git branch --no-merged 显示所有未合并到当前分支的分支

    • git branch -m master master_copy 本地分支改名

    • git checkout -b master_copy 从当前分支创建新分支master_copy并检出

    • git checkout v2.0 检出版本v2.0

    • git checkout -b XXXX origin/YYY 从远程分支XXXX创建新本地分支YYY并检出

    • git merge origin/master 合并远程master分支至当前分支

    • git cherry-pick XXX 合并提交XXX的修改

    • git push origin master 将当前分支push到远程master分支

    • git push origin :XXX/YYY 删除远程仓库的XXX/YYY分支

    • git push --tags 把所有tag推送到远程仓库

    • git fetch 获取所有远程分支(不更新本地分支,另需merge)

    • git fetch --prune 获取所有原创分支并清除服务器上已删掉的分支

    • git pull origin master 获取远程分支master并merge到当前分支

    • git reset --hard HEAD 将当前版本重置为HEAD(通常用于merge失败回退)

    • git branch -d XXX/YYY 删除分支XXX/YYY(本分支修改已合并到其他分支)

    • git branch -D XXX/YYY 强制删除分支XXX/YYY

    • git ls-files 列出git index包含的文件

    • git show-branch 图示当前分支历史

    • git show-branch --all 图示所有分支历史

    • git whatchanged 显示提交历史对应的文件修改

    • git revert XXXXXXXX 撤销提交

    • git stash 暂存当前修改,将所有至为HEAD状态

    • git stash list 查看所有暂存

    • git stash show -p stash@{0} 参考第一次暂存

    • git stash apply stash@{0} 应用第一次暂存


    以后git用的多了 肯定会增加命令的 ,以后再补充吧


    几篇学习git非常好的教程:
    易佰网的git教程
    伯乐在线的git系列教程共有九篇,讲的非常详细

    相关文章

      网友评论

        本文标题:git学习及常用代码

        本文链接:https://www.haomeiwen.com/subject/nqufettx.html