5分钟掌握80%git操作
git作为代码管理最流行的工具,有一些快速上手或常用的功能,结合自己的工作,做了一些总结。
(1)下载远程代码到本地
git clone https://github.com/OnTheWay111/RNCodeCoverageExample.git
(2)上传本地代码至远程仓库:
git init # 通过git init命令把这个目录变成Git可以管理的仓库
git add 文件/文件夹 # 用命令git add告诉Git,把文件添加到仓库
git commit -m "wrote a readme file" # 用命令git commit告诉Git,把文件提交到仓库
# 备注:可以多次add不同的文件,一次commit提交
git push origin master # 推送到远程仓库
git status # 查看git仓库最新的状态
(3)查看更改内容
git diff # 查看所有修改内容
git diff file_name # 查看某文件修改内容
(4)撤销未提交的修改
git checkout file_name
(5)撤销add后内容
git reset HEAD file_name
(6) 查看分支
git branch
(7)创建分支
git branch 分支名
(8)切换分支
git checkout 分支名
(9)合并分支,将分支A的代码,合并到分支B
git checkout 分支B
git merge 分支A
# 强制合并分支
git push origin 分支A:分支B -f
(10)删除分支
Git branch -D 分支名
(11)删除远程仓库文件:
1、删除本地文件
rm 文件/文件夹
2、查看git仓库状态
git status
3、确定并删除git仓库的文件
确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:
* $ git rm test.txt
* $ git commit -m "remove test.txt"
* [master d46f35e] remove test.txt 1 file changed, 1 deletion(-) delete mode 100644 test.txt
* git push origin master
* Username for 'https://gitbj.cmcm.com': lizhen1@cmcm.com
* Password for 'https://lizhen1@cmcm.com@gitbj.cmcm.com':
* 对象计数中: 2, 完成.
* Delta compression using up to 8 threads.
* 压缩对象中: 100% (2/2), 完成.
* 写入对象中: 100% (2/2), 214 bytes | 214.00 KiB/s, 完成.
* Total 2 (delta 1), reused 0 (delta 0)
* To https://gitbj.cmcm.com/autoTestApp/UIPlatformDeploy.git
* 125cb45..464ef29 master -> master
(12)查看git历史记录: git log (如果想要日志摘要:git log --pretty=oneline)
git log 087e7928b793240bdca565340583bd4c16d861c3 -1 # 查看某条git记录
git log 087e7928b793240bdca565340583bd4c16d861c3 -1 -p # 查看某条git记录的具体修改内容
(13)回退到上个版本:
HEAD表示当前版本,上一个版本就是HEAD,上上一个版本就是HEAD^,往上100个版本写HEAD~100
git reset --hard HEAD^
(14)去到未来的某个版本:
git commit --hard commit_id
(版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了)
查看历史命令:git reflog用来记录你的每一次命令
(15)强制更新某文件:
如果git fetch输出空,则可以使用git pull获取
(16)放弃本地修改,并强制拉取更新
开发时,对于本地的项目中修改不做保存操作(或代码改崩),可以用到Git pull的强制覆盖,具体代码如下:
// git fetch 指令是下载远程仓库最新内容,不做合并
// git reset 指令把HEAD指向master最新版本
git fetch --all
git reset --hard origin/master
git pull //可以省略