之前项目一直使用的是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
到文件中
总结
后续使用遇到问题或者小技巧还会持续更新。
网友评论