目录
将文件撤销回到最近一次修改的状态:git checkout -- file
git创建分支:git branch、git checkout
1、掌握日常使用命令
git clone
git log
git pull
git push
git rebse
git commit
git checkout
git branch
git diff
git merge
2、跟踪远程分支
3、在gerrit平台上创建个人分支,并本地跟踪、push代码
注:使用app/Client/SDKStage作为练习项目
2020.06.21
——————————————————————————————————
1、掌握日常使用命令
初始化:
配置git环境:git config --global
创建本地空仓库:git init
新建文件添加到本地仓库:git add、git commit -m
改写提交:git commit --amend
git clone 克隆
git commit 将暂存区内容提交到仓库
查看:
git log 查看历史提交日志
git branch -a查看分支
git reflog 查看提交历史
git log filename 查看单个文件可回滚版本
git status 查看提交之后文件是否做了改动
git diff 查看不同分支的文件差异
git remote 查看仓库信息
拉取与上传:
git pull 下载远程代码并合并
一、远端跟踪分支不同
1、Git fetch:Git fetch能够直接更改远端跟踪分支。
2、git pull:git pull无法直接对远程跟踪分支操作,我们必须先切回本地分支然后创建一个新的commit提交。
二、拉取不同
1、Git fetch:Git fetch会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作。
2、git pull:git pull是从远程获取最新版本并merge到本地,会自动合并或修改当前的工作。
三、commitID不同
1、Git fetch:使用Git fetch更新代码,本地的库中master的commitID不变,还是等于1。
2、git pull:使用git pull更新代码,本地的库中master的commitID发生改变,变成了2。
git push 上传远程代码并合并
删除与恢复:
git rm 删除文件
git rm、git reset、git checkout git rm后恢复文件
git reset –hard
——————————————————————————————————————————————————
回滚代码仓库:git reset –hard
reset参数是重置命令
--hard是重置代码仓库版本
有三种模式
--soft 、--mixed以及--hard是三个恢复等级。
使用--soft就仅仅将头指针恢复,已经add的暂存区以及工作空间的所有东西都不变。
如果使用--mixed,就将头恢复掉,已经add的暂存区也会丢失掉,工作空间的代码什么的是不变的。
如果使用--hard,那么一切就全都恢复了,头变,aad的暂存区消失,代码什么的也恢复到以前状态。
1.回滚到指定历史版本
先使用git log查看历史版本
git log
在使用git reset --hard命令回滚
git reset --hard 要回滚id
回滚到上一次提交的版本
git reset --hard HEAD^
回滚到前三个版本
git reset --hard HEAD~3
后面的~3,代表以当前版本为基数,回滚多少次。HEAD~3代表回滚master前三个版本
将文件撤销回到最近一次修改的状态:git checkout -- file
英文对应:
A:未修改
AM:修改
Untracked:未提交
modified:新文件,但未提交
将所有改动文件添加到缓存区:git add --all、git add .
git add –all:会记录删除操作
git add .:不会记录删除操作
——————————————————————————————————————
分支:
git checkout 更改/切换分支
git创建分支:git branch、git checkout
git创建分支:git branch、git checkout
使用git checkout -b参数来创建一个分支,创建完成分支后会自动切换过去
git checkout -b dev
git checkout -b等价于
git branch devgit checkout dev
git branch 如果后面跟着名字则会创建分支,但不会切换
git checkout 后面如果是分支名称则切换过去
git切换分支:git checkout
git合并分支:git merge
git rebse 合并分支,不会产生额外的commit,缺点:如果合并的分支中存在多个commit,则需要重复处理多个分支。
自己单机的时候,拉公共分支最新代码的时候使用rebase,也就是git pull -r或git pull –rebase;
大部分公司其实会禁用rebase,不管是拉代码还是push代码统一都使用merge,虽然会多出无意义的一条提交记录“Merge … to …”,但至少能清楚地知道主线上谁合了的代码以及他们合代码的时间先后顺序
git查看分支:git branch -a
git删除本地分支:git branch -D
git删除远程分支:git push origin --delete
git diff git查看不同分支的文件差异
git branch 创建分支
git merge 合并分支
————————————————————————————————————————————————
创建新文件夹:cd odc-code
创建新文件:touch test.c
使用git命令把文件提交到缓存区:git add test.c
添加到本地仓库:git commit – m ‘ add new file “\test.c\” ’ 注释信息要简洁
重写上一次提交的信息:git commit –amend
进入后按i可进行编辑,修改完成后按下ctrl+o键,在按下回车,就会提示已写入,用#是注释,不会被提交,git会自动过滤
以上是查看更高过后的文件修改目录和文件对比
以上是提交代码操作,git add 文件路径,或者直接提交所有更改过的文件
也可以进行提交撤回操作
git add app/
git reset app/src/main/res_meizu/values-zh-rCN/strings.xml
GNU nano 4.8 /home/meizu/vcc-code/Download/.git/COMMIT_EDITMSG 已更改
[系统应用][下载管理]#1133826 修改CN中删字繁体字为简体字
git push origin HEAD:refs/for/meizu/yangshiyu/bugfix_0628
git commit --amend
修改合并上一条log
必须要git commit 之后才能push
步骤:
——————————————————————————————
cd odc-code/packages/providers/DownloadProvider/
cd vcc-code/Download/DownloadProviderUi/
git branch查看分支
git status
git diff
git difftool
git add app/或者文件地址
git commit
或者修改上一条log并合并git commit --amend
git push origin HEAD:refs/for/meizu/yangshiyu/bugfix_0628