Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。
代码提交一般有五个步骤:
- 查看目前代码的修改状态
- 查看代码修改内容
- 暂存需要提交的文件
- 提交已暂存的文件
- 同步到服务器
git 命令:
- 克隆代码
git clone 代码仓库地址 文件夹名 - 提交代码基本步骤
2.1 git status (查看本次修改的文件列表)
2.2 git add 要提交的文件名 (添加单个要提交的文件) /git add . (提交git status中看到的所有修改)
强制提交 git add -f TKApp/TKApp.xcodeproj/project.xcworkspace/xcuserdata/
2.3 git commit -m”注释” -a (这个命令我的理解是提交到本地仓库,没查过)
2.4 git pull (down远程仓库的更新)
(有冲突要解决冲突)
2.5 git push (提交合并后的代码)
分支相关:
git checkout --track origin/xed 从服务器下载分支
git pull origin xed 下载代码
git push origin xed 提交代码
git branch 1.1.3appstore 创建分支
git branch 查看分支
git branch -a 查看本地和远程分支
git checkout 1.1.3appstore 切换分支
git merge origin/im 合并分支
git branch -d XXXXX 删除本地分支
git push origin :branch-name 删除远程分支
冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
git信息查看和日志查看:
git log
git show
git show branch
git show index
git show ref
回退代码
pull 错分支之后 用git log 查看日志,用
git reset --hard be2e1378b6aeaac9b45893be1cb2faa423570e8c 命令回退。
如果想撤销commit但又想保留本地代码,可以用下面命令撤销
git reset --soft HEAD~n (n代表第几次提交)
git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git checkout . 本地所有修改的。没有的提交的,都返回到原来的状态
git stash 把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH 返回到某个节点,不保留修改。
git reset --soft HASH 返回到某个节点。保留修改
详解
1. 查看目前代码的修改状态
提交代码之前,首先应该检查目前所做的修改,运行git status命令
- 已暂存 (changes to be committed)
new file //表示新建文件
modified //表示修改文件
deleted //表示删除文件
- 已修改 (changed but not updated)
modified //表示修改文件
deleted //表示删除文件
另外,git 给出了可能需要的操作命令,git add/rm, gitcheckout --
- 未跟踪 (untracked files)
2. 查看代码修改的内容
git diff <file>
比较某文件与最近提交节点的差异。
注意:如果该文件已暂存,那么应该使用git diff –cached<file>
git diff <hashcode> <hashcode> <file>
比较某文件在提交节点a,节点b的差异。
技巧:如果省略后面一个hashcode,则默认表示与上一提交节点比较。(也可以利用^运算符)
3. 暂存需要提交的文件
如果是新建的文件
则git add <file>
如果是修改的文件
则git add <file>
如果是删除的文件
则 git rm <file>
4. 提交已暂存的文件
git commit
注意注释填写规范。
git commit --amend
修改最近一次提交。有时候如果提交注释书写有误或者漏提文件,可以使用此命令。
5. 同步到服务器
同步到服务器前先需要将服务器代码同步到本地
命令: git pull
如果执行失败,就按照提示还原有冲突的文件,然后再次尝试同步。
命令:git checkout -- <有冲突的文件路径>
同步到服务器
命令: git push origin <本地分支名>
如果执行失败,一般是没有将服务器代码同步到本地导致的,先执行上面的git pull命令。
网友评论