美文网首页
Git 使用总结

Git 使用总结

作者: Wynter_Wang | 来源:发表于2019-02-27 20:18 被阅读0次

    之前项目一直使用的是SVN,唯一使用的Git就是GitHub,但是也是个人项目用到的也是几个简单Git命令,并没有团队合作开发使用过,在使用过程中难免会遇到一些新手都会遇到的问题,这篇文章就专门记录一些Git常用命令及使用过程中遇到的一些问题。

    常用命令

    创建项目并添加文件

    # 初始化项目
    git init 
    # 添加指定文件到缓存区
    git add test.text
    # 添加所有文件到缓存区,简单粗暴
    git add .
    # 添加提交说明
    git commit -m "添加了test.text文件"
    

    git本地仓库关联到github远程仓库

    # 关联到远程仓库
    git remote add origin https://github.com/UserName/ProjectName.git
    # 推送到远程仓库实现同步,-u的作用是关联本地和远程仓库并将本地仓推送到远程仓
    git push -u origin master
    

    拉取最新代码

    git pull
    

    推送本地修改到远程仓库

    # 推送本地到远程仓库主干或分支
    # git push origin <branchName>
    git push origin master
    

    克隆项目

    git clone https://github.com/UserName/ProjectName.git
    

    分支管理

    # 查看分支
    git branch
    # 创建分支
    git branch <name>
    # 切换分支
    git checkout <name>
    # 创建并切换分支
    git checkout -b <name>
    # 合并某分支到当前分支
    git merge <name>   
    # 删除分支,已经推送到远程库需要两步
    # 1、删除本地分支
    git branch -d <name>
    # 2、删除远程分支
    git push origin :branchName
    

    存储和恢复,通常用于分支间切换修复bug

    # 存储当前状态
    git stash
    # 查看存储状态
    git stash list
    # 恢复指定的存储状态
    git stash apply stash@{0}
    # 恢复存储状态
    git stash apply
    # 删除存储状态
    git stash drop
    # 恢复存储状态并删除stash,推荐使用
    git stash pop     
    

    标签管理

    # 查看标签列表
    git tag
    # 创建标签
    git tag <tagName>
    # 创建标签
    git tag -a <tagName> -m "V7.0发布了,打个标签"
    # 查看最近commit id列表
    git log --pretty=oneline --abbrev-commit
    # 针对指定commit id打标签
    git tag <tagName>  <commit id>
    # 删除标签
    git tag -d <tagName>
    # 推送指定标签到远程仓库
    git push origin <tagName>
    # 推送全部标签到远程仓库
    git push origin --tags
    # 删除标签,已经推送到远程库需要两步
    # 1、删除本地标签
    git tag -d <tagName>
    # 2、删除远程标签
    git push origin :refs/tags/<tagName>
    

    版本回退

    # 退回到上一个版本
    git reset --hard HEAD^
    # 退回到指定版本,只输入commit id前几位也可以
    git reset --hard commit id
    # 将提交到缓存中文件回退到工作区
    git reset HEAD <fileName>
    # 将提交到缓存中全部文件回退到工作区
    git reset HEAD .
    

    删除文件

    # 删除文件
    git rm <fileName>
    # 删除目录及目录下所包含的文件
    git rm <fileName> -r -f 
    #  从缓存中删除文件,但物理文件还在项目中
    git rm --cached <fileName>
    # 缓存和物理文件同时删除
    git rm --f  <fileName>
    

    撤销修改,恢复到最近一次git commit或git add时的状态

    # 放弃当前文件的修改,未加入缓存区才有效
    git checkout -- <fileName>
    # 放弃所有的修改,未加入缓存区才有效
    # git checkout -- .
    

    frok更新到最新的源库代码

    # upstream是一个自定义命名,相当于把你克隆的项目与源项目进行一个关联
    git remote add upstream https://github.com/UserName/Project.git 
    # 更新源项目代码
    git fetch upstream 
    # 更新之后合并到本地,此刻可能发生冲突
    git merge upstream/master  
    

    查看远程库的信息

    # 忘记git地址可以使用查看
    git remote -v
    

    操作日志

    # 查看操作日志
    git log
    # 查看历史操作日志
    git reflog
    

    查看版本状态

    # 可以看修改或操作了那些文件
    git status
    

    常见问题

    合并分支UserInterfaceState.xcuserstate引起冲突问题

    方法一:

    删除xcuserdata目录,重新合并

    方法二:

    全局设置忽略xcuserdata修改
    1、vi .gitignore_global
    2、添加xcuserdata 到文件中

    总结

    后续使用遇到问题或者小技巧还会持续更新。

    相关文章

      网友评论

          本文标题:Git 使用总结

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