目录
Git常用命令:
- 查看远程分支: git branch –a
- 查看本地分支: git branch (*表示当前所在分支)
- 创建分支 : git branch namenew
- 删除分支 : git branch -d [branch-name]
- 切换分支 : git checkout namebranch
- git checkout -b namebranch 新建并切换到本地 namebranch 分支
- git pull origin namebranch 本地分支与远程分支相关联
- 显示工作目录和暂存区的状态: git status
- 提交文件到本地git代码库: git commit
- 代码提交到远程对应分支: git push <远程主机名> <本地分支名>:<远程分支名>
- git fetch和git pull的区别
- git fetch:相当于是从远程获取最新版本到本地,不会自动合并。
- git pull:相当于是从远程获取最新版本并merge到本地
- git pull origin master:命令其实相当于git fetch 和 git merge;在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并。
- Git pull的作用是,从远程库中获取某个分支的更新,再与本地指定的分支进行自动merge。完整格式是:git pull <远程库名> <远程分支名>:<本地分支名>
- git reset #撤回缓存中的代码, 或撤回git commit 命令误将代码提交到本地仓库;
- git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
- git reset --soft + 版本号:回退到某个版本,只回退了commit的信息,不会恢复到index file一级,回退到某个版本,只回退了commit的信息,不会改变已经修改过的代码。如果还要提交,直接commit即可
- git reset --hard + 版本号:彻底回退到某个版本,本地的源码也会变为上一个版本的内容(这个要特别注意,因为本地代码会修改)
- git reset --hard +版本号(commit id)
- git reset --hard 1c388***** 撤回制定版本号(不是最新的那个版本号)
- git stash #保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动。使用git stash save 'message...'可以添加一些注释
- git clean 命令用来从你的工作目录中删除所有没有tracked过的文件.
- git diff filename #比较工作区和暂存区
- git log #查看本地git代码的日志信息:
- git show [commit_id] #查看某次历史提交信息的完整信息
Git提交代码流程:
注:代码编译同并且验证通过后才可提交代码!
Step1: git pull #作用是:取回远程主机某个分支的更新,再与本地的指定分支合并。
Step2: git status #查看当前分支的修改状态:
- Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
- Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作.
- deleted: 文件已删除,本地删除,服务器上还没有删除.
- renamed:
Step3: git add file1 file2… #将状态改变的代码提交缓存;注:git add .要慎用,修改那个文件就add那个文件。
Step4: git commit -m “注释部分”#将代码提交到本地库中
Step5: git push #将代码推送到服务器;
格式:git push localbranach: origin remotebranch
Step6:提交后要@审阅代码的人
Git基本概念:
工作区:git clone 或 git init之后,目录下看到看到一个.git隐藏文件夹,这个文件夹就是版本库,目录及其子目录就是工作区,代码修改保存后,在可以直接编译,运行。
暂存区:git add 把文件从工作区被提交到暂存区,但此时文件并没有真正进入到版本库当中,文件目前只处于一个中间状态。
本地版本库:git commit这个命令将处于中间状态的文件(暂存区的文件)提交到本地的版本库中。
远程版本库:git push这个命令将处于本地版本库提交到远程版本库中。
git commit --amend使用:
如果的代码已经提交到远程git库,reviewer审核时候发现代码有点问题,需要修改,通常有2种方法:
方法1:reviewer将你提交的所有代码 abandon,然后你回去 通过git reset …将代码回退到你代码提交之前的版本,然后你修改出问题的代码,然后 git add commit,最后git push
方法2:reviewer不abandon代码,回去之后,可以直接修改出问题的文件,修改好之后,git add 该出问题文件,然后 git commit --amend ,最后git push。这种方式可以比较方便的保持原有的Change-Id,推荐使用。
新建本地分支并拉取远程指定分支:
git checkout –b newbranch origin/remotebranch
注意事项:防止本地其他分支code的干扰,建完新分支后,执行
- git status
- git reset -hard
- git clean -df
切换分支注意事项:
Step1:make clean #清除make产生的中间文件
Step2:git stash 或者git add、git commit 后再切换
注:没有add,也没有commit,切换分支,修改的内容也会切到另一个分支。
Step3:git status