git-command(GIT命令)
git push命令用法
![git push命令用法](https://img.taocdn.com/s3/m/28388ff5a0c7aa00b52acfc789eb172ded6399d3.png)
git push命令用法git push命令用法1. 简介git push是Git中用于将本地的代码推送到远程仓库的命令。
它是Git中最常用的命令之一,具有广泛的应用场景。
2. 基本用法•git push <远程仓库名> <分支名>:将本地指定分支的代码推送到指定的远程仓库。
3. 实例演示1.创建一个新的Git仓库:git init2.添加文件:git add .3.提交文件:git commit -m "Initial commit"4.关联远程仓库:git remote add origin <远程仓库URL>5.将本地代码推送到远程仓库:git push origin master4. 推送指定分支•git push <远程仓库名> <本地分支名>:<远程分支名>:将指定的本地分支推送到指定的远程分支。
5. 实例演示1.创建一个新的Git仓库:git init2.添加文件:git add .3.提交文件:git commit -m "Initial commit"4.关联远程仓库:git remote add origin <远程仓库URL>5.将本地分支develop推送到远程分支feature:git pushorigin develop:feature6. 推送所有分支•git push <远程仓库名> --all:将所有本地分支推送到指定的远程仓库。
7. 实例演示1.创建一个新的Git仓库:git init2.添加文件:git add .3.提交文件:git commit -m "Initial commit"4.关联远程仓库:git remote add origin <远程仓库URL>5.将所有本地分支推送到远程仓库:git push origin --all8. 强制推送•git push <远程仓库名> --force:在需要强制更新远程仓库的情况下使用。
git命令行使用方法
![git命令行使用方法](https://img.taocdn.com/s3/m/6c0589e048649b6648d7c1c708a1284ac85005e1.png)
git命令行使用方法Git是一个流行的版本控制系统,它可以让开发者轻松地跟踪代码更改、合并代码以及管理代码库。
在本文中,我们将介绍如何使用Git命令行来完成常见的Git任务。
1. 安装Git首先,您需要在您的计算机上安装Git。
您可以从Git官方网站上下载适合您操作系统的安装包,并按照安装向导进行安装。
2. 创建一个本地仓库要使用Git,您需要在您的项目中创建一个本地仓库。
您可以在项目目录中打开终端,并使用以下命令来创建一个空的Git仓库。
```git init```3. 添加文件到本地仓库一旦您创建了Git仓库,您可以使用以下命令来将文件添加到仓库中。
```git add <file>```例如,要将名为'index.html'的文件添加到Git仓库中,您可以使用以下命令。
```git add index.html```4. 提交更改一旦您将文件添加到Git仓库中,您需要将更改提交到仓库中。
您可以使用以下命令来提交更改。
```git commit -m 'commit message'```例如,要提交一个带有'Initial commit'消息的更改,您可以使用以下命令。
```git commit -m 'Initial commit'```5. 查看更改历史您可以使用以下命令来查看您的Git仓库中的更改历史。
```git log```这将显示每个提交的SHA-1哈希值、作者、时间戳以及提交消息。
6. 创建分支您可以使用以下命令来创建一个新的分支。
```git branch <branch-name>```例如,要创建名为'feature-branch'的新分支,您可以使用以下命令。
```git branch feature-branch```7. 切换分支要切换到不同的分支,您可以使用以下命令。
git的基本命令
![git的基本命令](https://img.taocdn.com/s3/m/87931fd0c9d376eeaeaad1f34693daef5ef71385.png)
git的基本命令
Git 基本命令:
git init –初始化一个Git仓库
git config –设置Git的配置
git add –将文件添加到版本库
git commit –提交文件到版本库
git status –检查Git的当前状态
git log –显示有关提交的日志信息
git diff –查看提交之间的不同
git show –显示提交的详细信息
git remote –管理远程版本库
git checkout –切换分支或者回退版本
git reset –重置版本库到某个commit
git tag –加标签某个提交
git fetch –从远程仓库获取最新版本
git pull –从远程仓库获取最新版本并自动合并到当前git merge –合并分支到当前分支
git rebase –重新应用已存在的提交
git cherry-pick –选择提交放入当前分支
git blame –检查某行代码是谁提交的
git stash –把当前未完成的工作暂存起来
git revert –恢复版本库到某个commit
git clean - 移除未跟踪的文件
git archive –创建zip/tar文件。
git基本命令
![git基本命令](https://img.taocdn.com/s3/m/033722c085254b35eefdc8d376eeaeaad1f3161b.png)
4、版本库管理相关命令
命令 简要说明 git count-objects 显示松散对象的数量和磁盘占用 git filter-branch 版本库重构 git fsck 对象库完整性检查 git fsck-objects* 同义词,等同于 git fsck git gc 版本库存储优化 git index-pack 从打包文件创建对应的索引文件 git lost-found* 过时,请使用 git fsck –lost-found 命令 git pack-objects 从标准输入读入对象ID,打包到文件 git pack-redundant 查找多余的 pack 文件 git pack-refs 将引用打包到 .git/packed-refs 文件中 git prune 从对象库删除过期对象 git prune-packed 将已经打包的松散对象删除 git relink 为本地版本库中相同的对象建立硬连接 git repack 将版本库未打包的松散对象打包 git show-index 读取包的索引文件,显示打包文件中的内容 git unpack-objects 从打包文件释放文件 git verify-pack 校验对象库打包文件
git clone 基本操作命令
![git clone 基本操作命令](https://img.taocdn.com/s3/m/09bec736854769eae009581b6bd97f192279bff9.png)
git clone 基本操作命令
`git clone` 是一个用来克隆(复制)一个远程仓库到本地的Git 命令。
基本语法为:`git clone [远程仓库地址]`
以下是`git clone` 命令的一些常用选项和用法:
1. 克隆一个远程仓库到当前目录下的新文件夹:
git clone [远程仓库地址]
2. 克隆一个远程仓库到指定的文件夹内:
git clone [远程仓库地址] [文件夹路径]
3. 克隆一个远程仓库,并指定一个新的本地仓库名:
git clone [远程仓库地址] origin [本地仓库名]
4. 克隆一个包含子模块(submodules)的远程仓库:
git clone recursive [远程仓库地址]
5. 克隆一个远程仓库的指定分支:
git clone -b [分支名] [远程仓库地址]
以上命令都是使用`git clone` 的常用方式,通过该命令可以将一个远程仓库完整地复制到本地作为一个本地仓库来使用。
windows10下git的初级使用方法
![windows10下git的初级使用方法](https://img.taocdn.com/s3/m/46d693e5f61fb7360b4c6527.png)
windows下git的初级使用方法一下是个人在windows上的一些小结安装与配置本地git1、下载地址:http://msysgit.github.io/2、安装选项(MATLAB要求):1)PATH,Use Git from the Windows Command Prompt;2)configuring the line ending conversions,Checkout as-is, commit as-is3、任意文件夹空白处右键,git bash,进入命令行设置用户名及邮箱git config --global "Your Name"git config --global user.email "email@"4、右键插件的停用与启用:cmd进入"C:\Program Files (x86)\Git\git-cheetah"目录(64为系统)停用:regsvr32 /u git_shell_ext64.dll启用:regsvr32 git_shell_ext64.dll如果启用无效,可考虑重装git,选择简单菜单,而不是默认的插件(退而求其次的办法。
)GitHub相关设置1、/,注册账号2、SSH秘钥:已建立git的文件夹空白处右键git gui,帮助,Show SSH key,generate key,则会在C:\Users\XXX\.ssh产生对应的秘钥(如果填写了密码,则每次提交或下载都需要密码)。
复制内容,进入github网站,登录,添加,title随便填,将key粘贴进去3、回到https:///主页,新建版本库(一个版本库与一个项目对应),并在https:///yourname/yourproject页面的右下角获得SSH clone URL使用git(与路径有关的尽量不要出现中文)提交修改1、进入项目文件夹,空白处右键git init here,则会产生一个.git隐藏文件夹2、编写相关代码,保存3、空白处右键git gui,重新扫描,缓存改动(或在进入gui前,空白处右键git all files now),则改动已进入缓存区4、填写提交描述,提交,则已保存为一个版本5、第一次向github PUSH:对应项目文件夹,空白处右键,git bash,(对应代码在新建github版本库时会出现)git remote add origin git@:yourname/yourproject.gitgit push -u origin master警告中选yes,若要输入密码,则注意不会有*显示,输入密码完直接回车重启git GUI,应成为6、之后PUSH时,可直接在在GUI中点“上传”复制版本库1、空白处右键,git GUI,克隆已有版本库2、Source,选择源文件夹或github地址3、Target,目标新文件夹名(不能已经存在,若提示已存在,可将相关文件夹删除)版本恢复1、空白处右键git history,选中要恢复的版本,右键reset master branch to here,Soft:现在的版本指针回退,文件不修改,为已缓存状态,需重新提交Mixed:现在的版本指针回退,文件不修改,为未缓存状态,需重新提交Hard:现在的版本指针回退,文件修改为要恢复的版本,不需重新提交2、从github远程恢复:空白处右键,git bash,git pull(未在GUI中找到解决办法。
gitlab命令详解
![gitlab命令详解](https://img.taocdn.com/s3/m/54721693ba4cf7ec4afe04a1b0717fd5360cb2c8.png)
1.将本地项目推送到远程仓库gitinit(初始化)gitremote-v(查看已经关联的地址)gitadd.(添加本地仓库)gitcommit-m"第一次提交"(提交说明)gitremoteaddoriginxxx(关联远程仓库)gitpull--rebaseoriginmaster(同步本地与远程仓库)gitpush-uoriginmaster(提交远程仓库)-f:强制推送至远程2.IdeaGit回退到某个历史版本找到要回退的版本号(右击项目-->Git-->ShowHistory-->选中要回退的版本-->CopyRevisionNumber)打开idea的Terminal输入命令gitreset--hard139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96(后面为版本号)3.把修改推到远程服务器gitpush-f-uoriginmaster或者gitpush-f强制同步远程仓库。
4.修改项目关联远程地址方法修改命令gitremoteset-urlorigin<url>手动改去项目中.git文件夹下,编辑config配置文件中url5.Git修改分支的名称需要将分支br_rename_old修改为br_rename_new,执行如下步骤:1、执行命令gitcheckoutbr_rename_old切换到br_rename_old分支,如果已经在这个分支下,可以不执行此步骤2、执行命令gitpulloriginbr_rename_old将代码更新到和远程仓库一致3、执行命令gitbranch-mbr_rename_oldbr_rename_new将本地仓库的br_rename_old的名称修改为br_rename_new4、执行命令gitpush--set-upstreamoriginbr_rename_new将本地分支push 到远程仓库5、执行命令gitpushorigin--deletebr_rename_old将远程分支br_rename_old删除6.Git删除分支1、先切换到别的分支:gitcheckoutxxx2、删除本地分支:gitbranch-dxxx3、如果删除不了可以强制删除,gitbranch-Dxxx4、删除远程分支(慎用):gitpushorigin--deletexxx7.master分支代码复制到新的分支创建新分支:gitbranchdeveloper切换到需要合并的分支:gitcheckoutdeveloper将master分支合并当前分支:gitmergemaster推送至远程仓库:gitpushorigindeveloper8.Git迁移项目到其他代码仓库,且保留分支与提交记录gitclone--baressh://需要迁移的项目地址/项目.gitcd项目.gitgitpush--mirrorssh://其他代码仓库地址/新项目名称.git9.Git相关命令操作查看所有分支(本地+远程)gitbranch-a查看本地分支gitbranch查看远程分支:gitbranch-r创建本地新分支gitbranch<branchName>切换分支gitcheckout<branchName>将本地分支,推送到线上gitpushorigin-u<branchName>合并分支:gitmerge[name]----将名称为[name]的分支与当前分支合并拉取指定分支的代码gitclone-bdevelophttps://gitlab.xxx。
repo用法详解
![repo用法详解](https://img.taocdn.com/s3/m/fa14cccb2dc58bd63186bceb19e8b8f67c1cefdd.png)
repo⽤法详解Android 为企业提供⼀个新的市场,⽆论⼤企业,⼩企业都是处于同⼀个起跑线上。
研究 Android 尤其是 Android 系统核⼼或者是驱动的开发,⾸先需要做的就是本地克隆建⽴⼀套 Android 版本库管理机制。
Android 使⽤ Git 作为代码管理⼯具,开发了 Gerrit 进⾏代码审核以便更好的对代码进⾏集中式管理,还开发了 Repo 命令⾏⼯具,对 Git 部分命令封装,将百多个 Git 库有效的进⾏组织。
要想克隆和管理这百多个 Git 库,还真不是⼀件简单的事情。
在研究 Repo 的过程中,发现很多⽂档在 Google Group 上,⾮“FQ”不可看。
⾮法的事情咱不⼲,直接阅读 repo 的代码吧。
创建本地 Android 版本库镜像的思路如果了解了 Repo 的实现,参考 , 建⽴⼀个本地的 android 版本库镜像还是不难的:下载 repo bootstrap 脚本$ curl /repo >~/bin/repo$ chmod a+x ~/bin/repo$ export PATH=$PATH:~/bin提供 –mirror 参数调⽤ repo init ,建⽴ git 版本库克隆$ repo init -u git:///platform/manifest.git --mirror使⽤ –morror 则下⼀步和源同步的时候,本地按照源的版本库组织⽅式进⾏组织,否则会按照 manifest.xml 指定的⽅式重新组织并检出到本地开始和源同步$ repo sync修改 manifest ,修改 git 库地址,指向本地的 git 服务器修改 platform/manifest.git 库中现有的 xml ⽂件,或者创建⼀个新的 xml ⽂件将 git 的地址改为本地地址,提交并 push本地 repo 镜像建⽴完毕之后,就可以在执⾏ repo init 时,使⽤本地更改后的 manifest 库,之后执⾏ repo sync 就是基于本地版本库进⾏同步了。
git常用命令解释
![git常用命令解释](https://img.taocdn.com/s3/m/68184984d0d233d4b14e699d.png)
GIT ANG REPOUSAGE1 git command1.1 git add∙git add . #将文件先暂存到staging area, stages new and modified, without deleted∙git add -A #states all∙git add -u #states modified and deleted, without new∙git add -i #进入互动模式∙git add filename #新增一个文件∙git add modify-file #修改过得文档也要加add,不然在commit时要加-a 1.2 git rm #删除文件∙git rm filename1.3 git mv #修改文件名,或搬移目录∙git mv filename newfilename1.4 git status #查看状态1.5 git commit∙git commit∙git commit -m 'commit message'∙git commit -a -m "message"∙git commit -a -v #-v查看修改的内容1.6 git branch∙git branch #列出所有的分支∙git branch new-branch #产生新的分支∙git branch new-branch master #由master产生新的分支∙git branch -d branch #删除分支∙git branch -D branch #强制删除分支∙git checkout -b new-branch #产生新分支并切换过去∙git branch -r #列出所有repository branch∙git branch -a #列出所有分支1.7 git checkout∙git checkout branch-name #切换到branch-name∙git checkout master #切换到master∙git checkout -b new-branch master #从master建立新的分支,并切换过去∙git checkout -b new-branch #由当前分支建立新分支∙git checkout -b new-branch origin #由origin建立分支∙git checkout filename #还原状态到repository状态∙git checkout HEAD . #将所有文件都checkout出来∙git checkout xxxx . #xxxx是commit的编号的前四位,将xxxx编号的版本checkout出来∙git checkout – * #恢复上一次commit的状态1.8 git diff∙git diff master #与master对比看哪些文件不同∙git diff –cached #比较staging area与repository∙git diff tag1 tag2 #tag1与tag2比较∙git diff tag1:file1 tag2:file2 #tag1的file1与tag2的file2比较∙git diff #当前与staging area比较∙git diff HEAD #当前与repository比较∙git diff new-brach #当前与new branch的比较∙git diff –stat1.9 git tag∙git tag v1 ebff #为commit ebff810c462234433434323334343设置标记v1 ∙git tag 版本1 ebff #tag可以为中文∙git tag -d 版本1 #删除标记版本11.10 git log∙git log #列出所有log∙git log –all∙git log -p #列出log及修改的内容∙git log -p filename #将filename的log及修改内容列出来∙git log –name-only #列出哪些文件被修改∙git log –stat –summary #列出各个版本间的改动及行数∙git log filename #这个文件的所有log∙git log directory #这个目录的所有log∙git log -S'FUNC()‘ #列出由FUNC()这个字符串的log∙git log –no-merges #不要列出merge的log∙git log –since="2 weeks ago" #列出最后两周的log∙git log –pretty=oneline∙git log –pretty=short1.11 git show∙git show ebff #显示commit ebff810xxxxxxxxxxx的内容∙git show v1 #显示tag v1的修改内容∙git show v1:hello.txt #显示tag:v1的hello.txt文件修改内容∙git show HEAD #当前版本的修改文件∙git show HEAD^ #前一版本所有修改的文件∙git show HEAD~4 #前4版本的修改文件1.12 git reset∙git reset –hard HEAD^ #还原到前一版本∙git reset –soft HEAD~31.13 git grep∙git grep "hello" v1 #查找tag:v1中是否由“hello"字符串∙git grep "hello"1.14 git stash∙git stash #放进暂存区∙git stash list #列出暂存区的文件∙git stash pop #取出最新的一笔,并移除∙git stash apply #取出但不移除∙git stash clear #清除暂存区1.15 git merge∙git merge #合并1.16 git blame∙git blame filename #列出此文件所有commit的记录1.17 git ls-files∙git ls-files -d #查看已删除的文件∙git ls-files -d | xargs git checkout – #将已删除的文件还原1.18 git revert∙git revert HEAD #回到前一此commit的状态∙git revert HEAD^ #回到上上一次的状态1.19 git remote∙git remote∙git remote add new-branch /project.git #增加远程repository的branch∙git remote show #列出现在由多少repository∙git remote rm new-branch #删除服务器上的新分支∙git remote update #更新所有repository branch1.20 git fetch∙git fetch origin1.21 git push∙git push origin:heads/xxx-branch2 repo command2.1 repo init∙repo init -u URL #在当前目录安装repo,该命令创建一个.repo文件夹,文件夹中包含一些git仓库,这些仓库包含着repo源代码何manifest文件。
git分支原理命令图文解析
![git分支原理命令图文解析](https://img.taocdn.com/s3/m/1e80e808650e52ea551898d3.png)
本地分支解析git 通过可变指针来实现对提交数据的历史版本的控制,每当我们提交新的更新,当前分支(设为master)则指向最后一个提交更新A,而最后一个提交对象则存在一个指针指向前一次的提交更新Q。
如果我们创建一个新的分支,child,它和master共同指向A,这时,如果我们向child分支提交更新B,我们会发现child 指向B,而master依然指向A。
无论我们在child分支进行了任何开发,只要回到master分支,就能恢复到更新A的数据状态了。
在图片里,我们还注意到有一个head指针,一般来说,它会指向我们目前所在的工作分支。
现在它指向了我们的master分支,意思是master是我们目前的工作分支。
一旦提交更新,就会在master分支上提交。
现在,让我们看看与git 分支有关的操作命令:1. git branch [option] [name]如果不使用任何参数,它可以用来查看所有的分支,而在分支名前有*标记的则为主分支,如果加上name为创建新分支,,如git branch child,则会创建一个名为child 的分支,此外,它有一些常用的参数:2. git checkout [name]切换到对应的分支,对于上图,如果我们是使用git checkout child,我们的head 指针就会指向child分支了。
这时候,如果我们提交新的更新D,我们会发现:我们的D指向C,而C依然指向A,也就是说,以后我们在child分支上做的任何更新,都不会对master分支所在的之路造成任何影响!一旦使用了checkout命令,我们还会发现,不仅head指针会指向新的分支,而且当前工作目录中的文件也会换成了新分支对应的文件了。
此外,我们还可以使用git checkout -b [name]命令,它会新建一个分支,并自动将当前的工作目录切换到该分支上。
3. git merge [name]合并分支,有的时候,我们创建次要分支,可能是为了修改原有程序的bug,或为了拓展新的功能,这时候如果我们想把次要分支的修改何并进主分支中,我们可以使用git merge命令来实现。
Git的常用命令
![Git的常用命令](https://img.taocdn.com/s3/m/c12e070eb6360b4c2e3f5727a5e9856a561226bc.png)
Git的常⽤命令Git常⽤命令汇总以及其它相关操作⼀、常⽤的git命令--⽂件⽬录操作命令mkdir * 创建⼀个空⽬录 *指⽬录名pwd显⽰当前⽬录的路径。
cat * 查看*⽂件内容git rm * 删除**⽂件--git初始化操作git init 把当前的⽬录变成git仓库,⽣成隐藏.git⽂件。
git remote add origin url 把本地仓库的内容推送到GitHub仓库。
git clone git@url/test.git 从远程库克隆git add * 把x⽂件添加到暂存区去。
git commit –m "*"提交⽂件 –m 后⾯的是注释。
--git 克隆分⽀git clone xxx.git 最简单直接的命令git clone xxx.git "指定⽬录" clone到指定⽬录git clone -b branchname xxx.git clone时创建新的分⽀替代默认Origin HEAD(master)--clone 远程分⽀ git clone 命令默认的只会建⽴master分⽀,如果你想clone指定的某⼀远程分⽀(如:dev)的话,可以如下: 1. 查看所有分⽀(包括隐藏的) git branch -a 显⽰所有分⽀ * masterremotes/origin/HEAD -> origin/masterremotes/origin/devremotes/origin/master2. 在本地新建同名的("dev")分⽀,并切换到该分⽀git checkout -t origin/dev#该命令等同于:git checkout -b dev origin/dev--查看命令git status 查看仓库状态git diff * 查看X⽂件修改了那些内容git log 查看历史记录git reflog 查看历史记录的版本号id(记录你的每⼀次命令,不论是否提交)git log --pretty=oneline 如果信息量太多可以进⾏⽐较好的列表显⽰--版本回退git reset –hard HEAD^ 回退到上⼀个版本git reset --hard HEAD~第⼏个如果想回退到第3个版本,使⽤git reset –hard HEAD~3git reset --hard 057d 回退到某⼀个具体的版本号--撤销修改git checkout file-name 恢复某个已修改的⽂件(撤销未提交的修改):git revert HEAD 还原最近⼀次提交的修改:git revert commit-id还原指定版本的修改--分⽀管理git branch 查看本地所有的分⽀git branch -a 查看远程所有的分⽀git branch name 创建分⽀git branch –d dev 删除dev分⽀git push origin --delete dev 删除远程的dev分⽀git branch -m dev develop 重命名分⽀git checkout –b dev 创建dev分⽀并切换到dev分⽀上git merge dev 在当前分⽀上合并dev分⽀代git push origin zyf-dev 把当前新增的zyf-dev分⽀推送到远程库(远程仓库没有给分⽀则会新建⽴该分⽀)git checkout — * 把XX⽂件在⼯作区的修改全部撤销。
Git基本操作命令合集
![Git基本操作命令合集](https://img.taocdn.com/s3/m/7a7ab7d559f5f61fb7360b4c2e3f5727a5e924f3.png)
Git基本操作命令合集平时⾃⼰敲敲代码,使⽤Git命令也渐渐多了起来。
使⽤起来的确很⽅便,今天来分享下Git基本概念和本地代码提交到github上的过程,很简单的,多操作⼏次就会了。
Git定义Git 是⼀个开源的分布式版本控制系统,⽤于敏捷⾼效地处理任何或⼩或⼤的项⽬。
Git 与常⽤的版本控制⼯具 CVS, Subversion 等不同,它采⽤了分布式版本库的⽅式,不必服务器端软件⽀持。
Git 与 SVN 区别1、Git 是分布式的,SVN 不是:这是 Git 和其它⾮分布式的版本控制系统,例如 SVN,CVS 等,最核⼼的区别。
2、Git 把内容按元数据⽅式存储,⽽ SVN 是按⽂件:所有的资源控制系统都是把⽂件的元信息隐藏在⼀个类似 .svn、.cvs 等的⽂件夹⾥。
3、Git 分⽀和 SVN 的分⽀不同:分⽀在 SVN 中⼀点都不特别,其实它就是版本库中的另外⼀个⽬录。
4、Git 没有⼀个全局的版本号,⽽ SVN 有:⽬前为⽌这是跟 SVN 相⽐ Git 缺少的最⼤的⼀个特征。
5、Git 的内容完整性要优于 SVN:Git 的内容存储使⽤的是 SHA-1 哈希算法。
这能确保代码内容的完整性,确保在遇到磁盘故障和⽹络问题时降低对版本库的破坏。
Git安装安装成功后,就可以使⽤命令⾏的git⼯具(已经⾃带了ssh客户端)了,另外还有⼀个图形界⾯的 Git 项⽬管理⼯具。
在开始菜单⾥找到"Git"->"Git Bash",会弹出Git命令窗⼝,你可以在该窗⼝进⾏Git操作。
Git基本命令新建代码库# 在当前⽬录新建⼀个 Git 代码库git init# 新建⼀个⽬录,将其初始化为 Git 代码库git init [project-name]# 下载⼀个项⽬和它的整个代码历史git clone [url]配置⽂件Git的设置⽂件为.gitconfig,它可以在⽤户主⽬录下(全局配置),也可以在项⽬⽬录下(项⽬配置)。
git基础操作命令
![git基础操作命令](https://img.taocdn.com/s3/m/1209693bdd36a32d737581d4.png)
1. git pull 更新服务器代码到本地a). git pull origin master是将origin这个版本库的代码更新到本地的master主分支2. git push 将本地代码提交到服务器3. git log 查看提交信息a). git log -p 查看历次的log信息及更改情况b). git log -p -4 查看距现在最近的4次的log信息及更改情况c). git log frameworks/ 查看关于frameworks/目录修改相关的log信息d). git log --stat 查看log显示文件修改情况e). git log --stat packages/apps/Contacts/ 查看关于packages/apps/Contacts/目录修改相关的log显示的文件修改情况4. git status查看工作目录和代码仓库的改动情况,这个比较重要,可以查看你自己代码哪些需要上传,然后再去add commit5. git diff 查看工作目录和本地仓库的差异或者本地仓库各个版本的差异a). git diff packages/apps/Contacts/AndoridManifest.xml 查看工作目录中AndoridManifest.xml和本地仓库中AndoridManifest.xml的不同b). git diff b46cae3b9a377bcd9cfc249a5778fce647feb961dc94bf29aab18168e79d6496a89e47dba7a1d494 查看这两个版本的不同(git diff history_oldhistory_current)c)git diff84d7c8bf6fde87316f693015d4a541a1adf037b3 b39cf58eea2f7733723ad90d104b83774136efa8 pa ckages/apps/Phone/src/com/android/phone/CallCard.java 查看两个版本之间针对特写文件的变化6. git commit 提交当前修改内容a). git commit file1 file2 -m "log message" 提交file1,file2到本地仓库b). git commit -a -m "log message" 提交所有在Git索引中的改动,所以事先先用git status,看自己代码和服务器的对比有哪些改动,最好不用-a7. git add 增加文件到Git索引a). git add file3 file4将file3,file4加入到Git索引中8. git rm 从Git索引移除文件a). git rm file3 将file3从Git索引中删除9. git branch 对分支的增、删、查操作a). git branch 显示所有本地分支b). git branch new_branch 在当前版本创建一个名为new_branch的分支c). git branch -D new_branch 强制删除名为new_branch的分支10. git checkout 在不同的branch切换和还原文件a). git checkout branch1 切换到branch1分支b). git checkout /packages/apps/Contacts/AndroidManifest.xml 会将AndroidManifest.xml文件从上一次提交的版本更新回来,未提交的部分会全部回滚11. git reset 将当前的工作目录完全回滚到指定的版本号a). git reset [--fixed] 3204f2f0bdfd6ada86c587b8927cdc5a15c586c1 只更新索引,不更新工作目录,也就是说所有的本地文件都不会更新b). git reset [--soft] 3204f2f0bdfd6ada86c587b8927cdc5a15c586c1c). git reset [--hard] 3204f2f0bdfd6ada86c587b8927cdc5a15c586c1 强制回滚到指定版本号,未提交的和此版本之后的更改全部删掉12. git mergea). git merge branch1 将branch1的改动合并到当前所在分支13. git patcha). git format-patch -1 打一个当前提交的补丁,也就是最后一次的提交改动b). git fromat-patch -1 6525c43add803bfee37cf5c1cb573ed8aecf529e 打一个指定具体某一次的补丁c). git format-patch -2 6525c43add803bfee37cf5c1cb573ed8aecf529e 打基于指定具体某个版本的接连两次的补丁15.git reset HEAD^表示回退刚刚的提交, git reset HEAD^^ 表示回退刚两次的提交,以此类推, 补充一下16.git format-patch -1 打印刚刚提交的一版的patch,相当于svn diff17.git show 查看当前提交的版本18.git show ffd98b291e0caa6c33575c1ef465eae661ce40c9 查看指定版本的文件19.git show ffd98b291e0caa6c33575c1ef465eae661ce40c9:filename 查看指定版本的某个文件20.git show 2010-Aug-12 查看指定tag的文件21.git remote show 查看远程仓库的信息22.git remote show origin 查看某个远程仓库的详细信息,比如要看所克隆的origin仓库23.git revert -n hashcode : git撤销某次历史提交; -n 不加的话,相当于撤销后的树状态也提交了,加了-n只是工作树回退了那次提交的内容,工作树处于待提交状态24.git show 9f5202b77bdd33f885207b618b7b2a78b6671813packages/apps/FM/src/com/hymost/fm/ui/FMRadio.java 查看特定版本特定文件的修改25.git diff 6af41d3 d67778 packages/apps/Music/>2.patch这个非常有用, 6af41d3 比d67778 新, 上句这样做的好处是可以产生从6af41d3 到d67778的反向diff ,把这个反向diff 写入2.patch,这样谁打了2.patch,谁就等于作了一次6af41d3 版本在对packages/apps/Music上所做修改的文本回退(如果该版本对这个目录的改动是有错的需要回退的,这是个好办法).回退,千万少用revert和reset ,这两个动作和危险,容易导致结点丢失.Changes to be committed:# (use "git reset HEAD <file>..." to unstage) //reset 加--soft 会保持文件的stage状态,(to be committed,这往往是被撤消的提交中的文件,stage中的文件的修改是diff不出来的), 如果不加(默认:mixed)就会把所有mark to be committed的文件全unstage掉,这时可以diff出来该文件的改动了## modified: packages/apps/Contacts/src/com/android/contacts/ContactsUtils.java //不会被diff出来, ## Changed but not updated: //会被diff出来# (use "git add <file>..." to update what will be committed)# (use "git checkout -- <file>..." to discard changes in working directory)## modified: frameworks/base/core/java/com/android/internal/app/RingtonePickerActivity.java# modified: frameworks/base/media/java/android/media/RingtoneManager.java## Untracked files: //不会参与版本管理,除非用git add进来# (use "git add <file>..." to include in what will be committed)补充一下: reset --hard hashcode就是相当于check out 掉所以从此hashcode之后的所有本地修改了,很危险,慎用.revert hashcode1相当于reset --hard, 不过它的指针不回退,反而是在当前HEAD之上再加一个版本,而该版本在文本上相当于hashcode1之前一个版本的文本内容,但这时候指针都没丢,反而还多了一个,这时候想回过来有办法,就是reset --hard 到HEAD^就行了,一切都回来了,等于什么也没做过.不过尽量不要用revert. 这已经是一个deprecated 命令了.其实对于像1->2->3->4->5,这样的版本链上,如果2->3东西有问题,想回掉这部分修改,却不影响3后面的修改,最好的办法就是不要通过指针来实现,而是通过本文修改来实现新增一个6版本,盖在5之上,我们只要把2->3的patch拿过来,在当前5的基础上,打个反向patch就行: git apply -R 2to3.patch, 这时你的本地代码从文本上就达到了你要想的结果,就是5的状态下把2->3的修改抹掉. 不过打patch有一点要注意,我们尽量不要把png等图片的patch放里头,这样会很慢,图片的二进制码很大. 而且我们可以对patch 进行修改,回退我们想要回退的文件和修改.26. 问题:1->2->3->4->5(本地和服务器上都是这个状态)如果你想把package/app/Contacts从5这个结点的内容恢复到2这个结点,但又想让HEAD指针保持在5上,怎么做?(1)首先,git checkout 78350ad27ed3ad070bc0b5044ec594e70800aded(结点2的hashcode) packages/apps/Contacts/此时,你git log 看到的最新的commit结点会是:commit ba5ca90406bd6aaba3c54c46e9d143829b6a52fb-----结点6Merge branch 'master' of 192.168.10.104:repositories/7x27a-2045这句话到底做了件什么事呢,首先它把packages/apps/Contacts/的内容恢复到2这个结点的状态,然后并最新的内容修改(即恢复后的)做为一个新的结点6来在5的后面提交一个新的结点,所以现在情况变成了:1->2->3->4->5->6(2)但是我们又不想增加新结点,怎么办呢,很简单,只要软reset一下就行,也就是:git reset 5点的hashcode,这样子你再用git diff 就会发现相当于你把package/app/Contacts下面的内容都手动准确地改到了2结点的状态,指针链还是保持在原来的1->2->3->4->5。
git合并分支流程
![git合并分支流程](https://img.taocdn.com/s3/m/64e30eba6aec0975f46527d3240c844769eaa080.png)
git合并分支流程
Git合并分支是一个关键的开发任务,可以在不影响现有分支的情况下将分支的更改合并到主分支中。
下面是Git合并分支的基本流程:
1. 确保当前分支为主分支(通常是master分支):在Git命令行界面中,输入“git branch”命令,可以查看当前分支。
2. 在主分支上创建一个新的分支:输入“git checkout -b
<new_branch_name>”,其中“<new_branch_name>”是你要创建的新分支的名称。
3. 在新分支上进行更改和提交:输入“git add <file_name>”和“git commit -m “<commit_message>””命令,将更改和提交保存到新分支上。
4. 切换回主分支:输入“git checkout master”。
5. 合并新分支:输入“git merge <new_branch_name>”,并指定要合并的新分支的名称。
6. 解决合并冲突:如果合并时出现冲突,则需要手动解决这些冲突。
在Git命令行界面中,可以使用“git status”命令查看哪些文件存在冲突。
7. 提交合并结果:一旦冲突得到解决,就可以输入“git add”和“git commit”命令,将合并结果提交到主分支中。
8. 删除新分支:一旦合并完成,就可以使用“git branch -d <new_branch_name>”命令删除新分支。
以上是Git合并分支的基本流程,需要仔细执行每个步骤,以确保您的更改和提交被正确合并到主分支中。
git合并代码的流程
![git合并代码的流程](https://img.taocdn.com/s3/m/2a61ce08842458fb770bf78a6529647d272834aa.png)
git合并代码的流程Git 是一个版本控制系统,它可以帮助团队成员协作并管理代码更改。
在Git 中,合并代码是常见的操作,下面是一个基本的合并代码流程:1. 检出分支:首先,你需要检出(checkout)一个分支。
如果你想合并到主分支(例如 `master` 或 `main`),你可能需要先切换到这个分支。
你可以使用以下命令检出或切换分支:```bashgit checkout master```2. 拉取最新的代码:在合并之前,你需要确保你的本地代码是最新的。
你可以使用以下命令拉取最新的代码:```bashgit pull origin master```这将拉取远程仓库(origin)的最新 `master` 分支代码。
3. 创建合并提交:现在你可以开始合并代码了。
你可以使用以下命令创建一个新的提交,该提交将包含所有未合并的更改:```bashgit merge feature-branch```在这里,`feature-branch` 是你要合并的分支的名称。
Git 将尝试自动合并这两个分支的更改。
如果有冲突,Git 会停下来,让你解决冲突。
4. 解决冲突:如果 Git 在自动合并过程中遇到冲突,它会停下来并提示你解决这些冲突。
你需要手动编辑有冲突的文件,以解决这些冲突。
解决冲突后,你需要添加这些文件到暂存区,并提交它们:```bashgit add <file>git commit -m "Resolved merge conflicts"```5. 推送更改:一旦你解决了所有冲突并提交了合并提交,你可以将更改推送到远程仓库:```bashgit push origin master```这会将你的合并提交推送到名为 `origin` 的远程仓库的 `master` 分支。
6. 检查合并:最后,你应该检查合并是否成功。
你可以查看远程仓库的网页界面或使用以下命令来查看合并后的提交历史:```bashgit log origin/master..master```这会显示在你的 `master` 分支上进行的所有提交,但不在远程 `master` 分支上进行的提交。
Git常用命令详解
![Git常用命令详解](https://img.taocdn.com/s3/m/d2808cb964ce0508763231126edb6f1afe007156.png)
Git常⽤命令详解Git 是⼀个很强⼤的分布式版本管理⼯具,它不但适⽤于管理⼤型开源软件的源代码(如:),管理私⼈的⽂档和源代码也有很多优势(如:)Git 的更多介绍,请参考我的上⼀篇博客:⼀、 Git 命令初识在正式介绍Git命令之前,先介绍⼀下Git 的基本命令和操作,对Git命令有⼀个总体的认识⽰例:从Git 版本库的初始化,通常有两种⽅式:1)git clone:这是⼀种较为简单的初始化⽅式,当你已经有⼀个远程的Git版本库,只需要在本地克隆⼀份例如:git clone git:///someone/some_project.git some_project上⾯的命令就是将'git:///someone/some_project.git'这个URL地址的远程版本库,完全克隆到本地some_project⽬录下2)git init 和 git remote:这种⽅式稍微复杂⼀些,当你本地创建了⼀个⼯作⽬录,你可以进⼊这个⽬录,使⽤'git init'命令进⾏初始化;Git 以后就会对该⽬录下的⽂件进⾏版本控制,这时候如果你需要将它放到远程服务器上,可以在远程服务器上创建⼀个⽬录,并把可访问的URL记录下来,此时你就可以利⽤'git remote add'命令来增加⼀个远程服务器端,例如:git remote add origin git:///someone/another_project.git上⾯的命令就会增加URL地址为'git: ///someone/another_project.git',名称为origin的远程服务器,以后提交代码的时候只需要使⽤ origin别名即可⼆、 Git 常⽤命令1) 远程仓库相关命令检出仓库: $ git clone git:///jquery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add [name] [url]删除远程仓库:$ git remote rm [name]修改远程仓库:$ git remote set-url --push [name] [newUrl]拉取远程仓库:$ git pull [remoteName] [localBranchName]推送远程仓库:$ git push [remoteName] [localBranchName]*如果想把本地的某个分⽀test提交到远程仓库,并作为远程仓库的master分⽀,或者作为另外⼀个名叫test的分⽀,如下:$git push origin test:master // 提交本地test分⽀作为远程的master分⽀$git push origin test:test // 提交本地test分⽀作为远程的test分⽀2)分⽀(branch)操作相关命令查看本地分⽀:$ git branch查看远程分⽀:$ git branch -r创建本地分⽀:$ git branch [name] ----注意新分⽀创建后不会⾃动切换为当前分⽀切换分⽀:$ git checkout [name]创建新分⽀并⽴即切换到新分⽀:$ git checkout -b [name]删除分⽀:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分⽀,对于未有合并的分⽀是⽆法删除的。
git安装配置以及在intellijidea中使用git的配置
![git安装配置以及在intellijidea中使用git的配置](https://img.taocdn.com/s3/m/bf257953d4d8d15abe234eff.png)
Git 安装、配置以及在IntelliJ idea 中使用Git 的配置安装Git 最早Git 是在Linux 上开发的,很长一段时间内Git 也只能在Linux 和Unix 系统上跑。
不过,慢慢地有人把它移植到了Windows 上。
现在,Git 可以在Linux 、Unix 、Mac 和Windows 这几大平台上正常运行了。
要使用Git ,第步当然是安装Git 了。
根据你当前使用的平台来阅读下面的文字:在Linux 上安装Git 首先,你可以试着输入git ,看看系统有没有安装Git:$ gitThe program 'git' is currently not installed. You caninstall it by typing: sudo apt-get install git像上面的命令,有很多Linux 会友好地告诉你Git 没有安装,还会告诉你如何安装Git 。
如果你碰巧用Debian 或UbuntuLinux ,通过一条sudo apt-get install git 就可以直接完成Git要的安装,非常简单。
老一点的Debian 或Ubuntu Linux ,把命令改为sudo apt-get install git-core ,因为以前有个软件也叫GIT ( GNU Interactive Tools ),结果Git 就只能叫git-core 了。
由于Git 名气实在太大,后来就把GNUInteractive Tools 改成gnuit ,git-core 正式改为git 。
如果是其他Linux 版本,可以直接通过源码安装。
先从Git 官网下载源码,然Git 安装、配置以及在IntelliJ idea 中使用Git 的配置后解压,依次输入:./config ,make ,sudo makeinstall 这几个命令安装就好了。
在 Mac OS X 上安装 Git 如 果你正在使用 Mac 做开发,有两种安装 Git 的方法。
gitcommandnotfound
![gitcommandnotfound](https://img.taocdn.com/s3/m/cec2d714eef9aef8941ea76e58fafab068dc4456.png)
gitcommandnotfound[root@isstech001 ~]# git-bash: git: command not foundyum安装[root@isstech001 ~]# yum install -y git已加载插件:fastestmirror设置安装进程Loading mirror speeds from cached hostfilefile:///mnt/cdrom/repodata/repomd.xml: [Errno 14] Could not open/read file:///mnt/cdrom/repodata/repomd.xml尝试其他镜像。
解决依赖关系--> 执⾏事务检查---> Package git.x86_64 0:1.7.1-3.el6_4.1 will be 安装--> 处理依赖关系 perl-Git = 1.7.1-3.el6_4.1,它被软件包 git-1.7.1-3.el6_4.1.x86_64 需要--> 处理依赖关系 rsync,它被软件包 git-1.7.1-3.el6_4.1.x86_64 需要--> 处理依赖关系 perl(Git),它被软件包 git-1.7.1-3.el6_4.1.x86_64 需要--> 处理依赖关系 perl(Error),它被软件包 git-1.7.1-3.el6_4.1.x86_64 需要--> 执⾏事务检查---> Package perl-Error.noarch 1:0.17015-4.el6 will be 安装---> Package perl-Git.noarch 0:1.7.1-3.el6_4.1 will be 安装---> Package rsync.x86_64 0:3.0.6-12.el6 will be 安装--> 完成依赖关系计算依赖关系解决==========================================================================================================================软件包架构版本仓库⼤⼩==========================================================================================================================正在安装:git x86_64 1.7.1-3.el6_4.1 Centos-source-local 4.6 M为依赖⽽安装:perl-Error noarch 1:0.17015-4.el6 Centos-source-local 29 kperl-Git noarch 1.7.1-3.el6_4.1 Centos-source-local 28 krsync x86_64 3.0.6-12.el6 Centos-source-local 335 k事务概要========================================================================================================================== Install 4 Package(s)总下载量:5.0 MInstalled size: 15 M下载软件包:下载软件包出错:1:perl-Error-0.17015-4.el6.noarch: failure: Packages/perl-Error-0.17015-4.el6.noarch.rpm from Centos-source-local: [Errno 256] No more mirrors to try.rsync-3.0.6-12.el6.x86_64: failure: Packages/rsync-3.0.6-12.el6.x86_64.rpm from Centos-source-local: [Errno 256] No more mirrors to try.perl-Git-1.7.1-3.el6_4.1.noarch: failure: Packages/perl-Git-1.7.1-3.el6_4.1.noarch.rpm from Centos-source-local: [Errno 256] No more mirrors to try.git-1.7.1-3.el6_4.1.x86_64: failure: Packages/git-1.7.1-3.el6_4.1.x86_64.rpm from Centos-source-local: [Errno 256] No more mirrors to try.挂载镜像[root@isstech001 ~]# mount /dev/cdrom /mnt/cdrom/mount: block device /dev/sr0 is write-protected, mounting read-only再次通过yum安装[root@isstech001 ~]# yum install -y git已加载插件:fastestmirror设置安装进程Loading mirror speeds from cached hostfileCentos-source-local | 4.0 kB 00:00 ...解决依赖关系--> 执⾏事务检查---> Package git.x86_64 0:1.7.1-3.el6_4.1 will be 安装--> 处理依赖关系 perl-Git = 1.7.1-3.el6_4.1,它被软件包 git-1.7.1-3.el6_4.1.x86_64 需要--> 处理依赖关系 rsync,它被软件包 git-1.7.1-3.el6_4.1.x86_64 需要--> 处理依赖关系 perl(Git),它被软件包 git-1.7.1-3.el6_4.1.x86_64 需要--> 处理依赖关系 perl(Error),它被软件包 git-1.7.1-3.el6_4.1.x86_64 需要--> 执⾏事务检查---> Package perl-Error.noarch 1:0.17015-4.el6 will be 安装---> Package perl-Git.noarch 0:1.7.1-3.el6_4.1 will be 安装---> Package rsync.x86_64 0:3.0.6-12.el6 will be 安装--> 完成依赖关系计算依赖关系解决==========================================================================================================================软件包架构版本仓库⼤⼩==========================================================================================================================正在安装:git x86_64 1.7.1-3.el6_4.1 Centos-source-local 4.6 M为依赖⽽安装:perl-Error noarch 1:0.17015-4.el6 Centos-source-local 29 kperl-Git noarch 1.7.1-3.el6_4.1 Centos-source-local 28 krsync x86_64 3.0.6-12.el6 Centos-source-local 335 k事务概要========================================================================================================================== Install 4 Package(s)总下载量:5.0 MInstalled size: 15 M下载软件包:--------------------------------------------------------------------------------------------------------------------------总计 18 MB/s | 5.0 MB 00:00运⾏ rpm_check_debug执⾏事务测试事务测试成功执⾏事务正在安装 : 1:perl-Error-0.17015-4.el6.noarch 1/4正在安装 : rsync-3.0.6-12.el6.x86_64 2/4正在安装 : perl-Git-1.7.1-3.el6_4.1.noarch 3/4正在安装 : git-1.7.1-3.el6_4.1.x86_64 4/4Verifying : git-1.7.1-3.el6_4.1.x86_64 1/4Verifying : perl-Git-1.7.1-3.el6_4.1.noarch 2/4Verifying : 1:perl-Error-0.17015-4.el6.noarch 3/4Verifying : rsync-3.0.6-12.el6.x86_64 4/4已安装:git.x86_64 0:1.7.1-3.el6_4.1作为依赖被安装:perl-Error.noarch 1:0.17015-4.el6 perl-Git.noarch 0:1.7.1-3.el6_4.1 rsync.x86_64 0:3.0.6-12.el6完毕!。
git修改commit信息
![git修改commit信息](https://img.taocdn.com/s3/m/8c6dffd6ab00b52acfc789eb172ded630b1c98e5.png)
git修改commit信息(1)如果是最近的⼀次commit,直接使⽤git commit --amend命令,使⽤这个命令之后,会跳出⽂本编辑器,直接编辑commit信息即可(2)如果需要修改前⾯某次的commit,就相对⽐较⿇烦,但也有⽅法:如果要修改历史的版本信息(⾮最新⼀条),会稍稍⿇烦⼀点,不过也可以搞定,这⾥⽤到的⽅法就是git命令的功能.假定我们现在的提交信息是这样的$ git logcommit 9ac1179332670365a3e5ea00a6486998eb66db7a (HEAD -> fix_aop_no_class_defined, origin/fix_aop_no_class_defined)Author: candyleer <295198088@>Date: Mon Apr 1619:58:232018 +0800update test caseSigned-off-by: candyleer <295198088@>commit 223fc80d17273b19238dcb648e6d6eefc579de0fAuthor: candyleer <295198088@>Date: Mon Apr 1618:47:502018 +0800unit test caseSigned-off-by: candyleer <295198088@>commit 2275781a0d75add037721832bd68c1a8edb3813eAuthor: candyleer <295198088@>Date: Mon Apr 1618:29:292018 +0800should find method from parent⼀共有三条历史提交信息,第⼆三条都已经加上了 DCO 信息,现在想在第⼀条(最⽼的⼀条)的提交信息上⾯也加上的话.我们可以按照上述⽂档操作:执⾏ git 命令, 修改近三次的信息$ git rebase -i HEAD~3将会得到如下的信息,这⾥的提交⽇志是和git log倒叙排列的,我们要修改的⽇志信息位于第⼀位.1 pick 2275781 should find method from parent2 pick 223fc80 unit test case3 pick 9ac1179 update test case45 # Rebase 79db0bd..9ac1179 onto 79db0bd (3 commands)6 #7 # Commands:8 # p, pick = use commit9 # r, reword = use commit, but edit the commit message10 # e, edit = use commit, but stop for amending11 # s, squash = use commit, but meld into previous commit12 # f, fixup = like "squash", but discard this commit's log message13 # x, exec = run command (the rest of the line) using shell14 # d, drop = remove commit15 #16 # These lines can be re-ordered; they are executed from top to bottom.17 #18 # If you remove a line here THAT COMMIT WILL BE LOST.19 #20 # However, if you remove everything, the rebase will be aborted.21 #22 # Note that empty commits are commented out我们现在要修改修改要should find method from parent这条⽇志,那么修改的⽇志为,将第⼀个pick修改为edit, 然后:wq退出.1 edit 2275781 should find method from parent2 pick 223fc80 unit test case3 pick 9ac1179 update test case将会看到如下信息,意思就是如果要改⽇志,执⾏git commit --amend,如果修改完成后,执⾏git rebase --continueclient_java git:(fix_aop_no_class_defined) git rebase -i HEAD~3Stopped at 2275781... should find method from parentYou can amend the commit now, withgit commit --amendOnce you are satisfied with your changes, rungit rebase --continue➜ client_java git:(2275781)正式修改,执⾏命令,-s就是⾃动加上Signed-off-by:$ git commit --amend -sclient_java git:(63b2cfd) git commit --amend -s[detached HEAD c46b30e] 1should find method from parentDate: Mon Apr 1618:29:292018 +08001 file changed, 4 insertions(+), 1 deletion(-修改完成后,:wq退出,然后完成此次 log 的rebase$ git rebase --continueclient_java git:(c46b30e) git rebase --continueSuccessfully rebased and updated refs/heads/fix_aop_no_class_defined.这样本地修改就完成啦,⽤git log再看下:commit 449efc747ffb85567667745b978ed7e3418cfe27 (HEAD -> fix_aop_no_class_defined) Author: candyleer <295198088@>Date: Mon Apr 1619:58:232018 +0800update test caseSigned-off-by: candyleer <295198088@>commit 69237c0bd48439ea0d8b87bf2c7c7ac4786c66d4Author: candyleer <295198088@>Date: Mon Apr 1618:47:502018 +0800unit test caseSigned-off-by: candyleer <295198088@>commit c46b30e456af6ecdf4a629a485e5efe5485e52b1Author: candyleer <295198088@>Date: Mon Apr 1618:29:292018 +08001should find method from parentSigned-off-by: candyleer <295198088@>所有信息都有Signed-off-by:这个参数了最后push 到远程仓库,所有的 DCO 就都可以加上啦,-f强制推送$ git push origin <you_branch_name> -f再次查看 github 的 CI,DCO 相关的就check pass啦。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中git reset是针对版本,如果想针对文件回退本地修改,使用
git checkout HEAD file/to/restore
16. Changes to be committed
use "git reset HEAD <file>..." to unstage
17. Unmerged
git reset --hard HEAD
7.
svn add file.txt
svn add folder
git add file.txt
git add folder
8.
svn rm file.txt
svn rm folder (recursive by default; use -N to not recurse)
git stash
Do the merge, and than pull the stash:
git stash pop
The third options is to discard the local changes using git reset --hard.
===工作方法===
git checkout -b working #create and switched to a new branch
git commit -m "My message"
The second is to stash it. stashing acts as a stack, where you can push changes, and you pop them in reverse order.
To stash type:
/hudashi/article/details/7664631
/kym/archive/2010/08/12/1797937.html
/sinojelly/archive/2011/08/07/2130172.html
#git add .
git commit -a -m "" # 提交到本地
git commit . -m "add adm push support" # don't want to commit untracked file
git checkout master
git pull origin master #切换回默认分支,并将默认分支和中央最新版本合并, 如果没有冲突,它会merge并创建一个commit
/book/en/v2/Git-Branching-Basic-Branching-and-Merging
12. tag
/book/en/v2/Git-Basics-Tagging
13.
svn info
git remote -v
19 Untracked files
use "git add <file>..." to include in what will be committed
20 git mergetool (diff tool)
21. git rebase
/wangjia55/article/details/8776409
1.
svn checkout /repos/jbosstools/branches/jbosstools-3.2.0.Beta1/
git clone /sonatype/sonatype-tycho.git; cd sonatype-tycho; git checkout origin/tycho-0.10.x
14. 本地冲突,如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash
git pull
git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.
15. 如果希望用代码库中的文件完全覆盖本地工作版本
git reset --hard
git reset HEAD <file>...
git add <file>...
18 Changes not staged for commit
use "git add <file>..." to update what will be committed
use "git checkout -- <file>..." to discard changes in working directory
git merge working #在本地合并你的这次修改到默认分支
git push origin master #提交到中央版本库,接下来还是要切换回工作分支的
git checkout working
git rebase master # merge master to working
10.
svn propset svn:ignore "target
*.class
bin" .; \
svn ci -N -m "svn:ignore" .
echo "target
*.class
bin" > .gitignore; \
git ci -m "gitignore" .gitignore
Байду номын сангаас
11. branch
git rm file.txt
git rm -r folder (non-recursive by default; use -r to recurse)
9.
svn ci -m "message" file.txt
git commit -m "message" file.txt; git push
24. Merge the master to a branch
git checkout feature1
git rebase master
=======
You can't merge with local modifications. Git protects you from losing important changes. You have three options. One is to commit the change using
2.
svn update
git pull
3.
svn stat
git status
4.
svn diff somefile.txt
git diff somefile.txt
5.
svn revert somefile.txt
git checkout somefile.txt
6.
svn revert . -R
22. List Git commits not pushed to the origin yet
git log origin/master..master
23. what is origin
$ git remote
origin
$ git remote show origin // svn info