实时搜索: git如何提交

git如何提交

623条评论 2106人喜欢 5177次阅读 860人点赞
...

如何把Git的某个commit提交到指定的本地分支和远程分支:

Git的分支合并主要依赖于checkout命令和cherry-pick 命令。cherry-pick就是从不同的分支中捡出一个单独的commit,并把它和你当前的分支合并。如果你以并行方式在处理两个或以上分支,你可能会发现一个在全部分支中都有的bug,如果你在一个分支中解决了它,你可以使用cherry-pick命令把它commit到其它分支上去,而不会弄乱其他的文件或commit。

1.例子:如我的Git文件在H:盘下,/h/myfirstproject,该目录中有三个分支:test分支,newbranch1分支和mater分支。如果想把test分支的某个commit合并到master,需要经过下面的步骤:

执行git log -3 --graph test,查看test分支下的commit:    注:commit 后面的hash值代表某个commit,这里把”2e1ada53819d46557b24ee7376dc61d37a06939d“这个commit提交到master。

执行git checkout master,切换到master分支。

执行 git cherry-pick 2e1ada53819d46557b24ee7376dc61d37a06939d,该commit便被提交到了master分支。

到此,”2e1ada53819d46557b24ee7376dc61d37a06939d“这个commit便被提交到了master分支。

2.例子:把本地的test分支的某个commit提交到远程testdevelop分支。

从远程分支 checkout 出来的本地分支,称为跟踪分支(tracking branch)。跟踪分支是一种和远程分支有直接联系的本地分支。在跟踪分支里输入Git push,Git
会自行推断应该向哪个服务器的哪个分支推送数据。反过来,在这些分支里运行git pull 会获取所有远程索引,并把它们的数据都合并到本地分支中来。

在克隆仓库时,Git 通常会自动创建一个名为 master 的分支来跟踪 origin/master。这正是git push 和 git pull 一开始就能正常工作的原因。当然,你可以随心所欲地设定为其它跟踪分支,比如origin 上除了 master 之外的其它分支。刚才我们已经看到了这样的一个例子:git checkout -b [分支名]
[远程名]/[分支名]。

1.首先新建一个临时分支,并把临时分支与远程分支关联。

git checkout -b tempbarch --track origin/testdevelop

2.此时已经切换到了tempbarch分支。再执行:git log -3 --graph test,查看test分支下的commit:

3.执行git cherry-pick f6cb436ff5a010cdd72dc2c8ff018db8e8832271 即可把”f6cb436ff5a010cdd72dc2c8ff018db8e8832271“这个commit提交到tempbranch分支。

然后再通过Tortoise客户端的push命令,即可把该commit提交到远程testdevelop分支。

4.切换到任何非tempbranch分支,如master分支,执行git branch -d tempbranch,即可把tempbranch分支删除掉。

怎样将本地的代码提交到gitLab: 1. 登录gitLab,在相应的组下创建project
2. 远程仓库工程已经创建完成,接下来切换本地计算机工程目录,执行如下命令:
git init
git remote add origin git@10.66.2.13:integrationDevTeam/gznb_college.git (gitLab刚刚创建的工程地址)
git add . (不要忘记点.)
git commit -m 'init'
git push -u origin master

如何查看git提交到本地的文件: 代码提交
代码提交一般有五个步骤:
1.查看目前代码的修改状态
2.查看代码修改内容
3.暂存需要提交的文件
4.提交已暂存的文件
5.同步到服务器
1. 查看目前代码的修改状态
提交代码之前,首先应该检查目前所做的修改,运行git status命令
a) 已暂存 (changes to be committed)

new file //表示新建文件
modified //表示修改文件
deleted //表示删除文件
b) 已修改 (changed but not updated)

modified //表示修改文件
deleted //表示删除文件
另外,git 给出了可能需要的操作命令,git add/rm, gitcheckout --
c) 未跟踪 (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命令。

怎么用Git Bash提交代码到Git Hub上: GitHub主要是用作基于Git的分布式版本管理系统的库,可以保存和管理自己的代码,而且主要用作代码的合作开发。不过对于我来说,Git控制系统还比较难以掌握,或者开发小系统还不太用得着,因此我把GitHub当作分享和展示代码的网站。 注册GitHub后你就会有0.3G的免费空间,不过只能创建公开项目,这也满足代码分享的目的,我最喜欢的倒是它的代码展示方式,可以直接浏览你的代码,代码是经过高亮、添加行号处理过的,十分漂亮,体验一流。
下面所说的都是你已经注册了Git Hub了并且安装了Git(它有Windows版本)下载地址http://d.download.csdn.net/down/3169511/z_y_liu89

1.在Git Hub上创建项目

登录GitHub后,你可以在右边靠中那里找到一个按钮“New Repository”,点击过后,填入项目名称、说明和网址过后就可以创建了,然后会出现一个提示页面,记下类似git@github.com:XXX/XXX.git的地址,这个就是你这个项目的地址了。

2.配置Git以及上传代码

安装Git成功后,如果是Windows下,选择Git Bash,在命令行中完成一切,可能开始有点麻烦,不过就那几条命令行,用几次就记住啦。首先初始设置Git:

1 git config --global user.name "Your Real Name" 2 git config --global user.email you@email.address

然后开始进行最麻烦的一步了,你需要上传文件到GitHub的Git系统上,得需要一个SSH密匙来认证,下面就开始生成密钥和提交密钥。打开Git Bash,创建SSH key:

1 ssh-keygen -C 'your@email.address' -t rsa

然后要你输入SSH密匙的存放位置,可以不管,直接回车使用默认路径(记住默认路径,等会会用到)。下面会让你输入想要的密码,不用管,直接回车,SSH

key就生成了。现在你需要将这个Key提交到GitHub,首先打开Key保存的位置(就是刚才那个默认的路径),里面会有三个文件,找到id_rsa.pub,用文本编辑器打开,复制里面的全部字符(一个也不能少,也不能多,连个空格也不能多)。到GitHub,在右上方工具栏里找到Account
Settings。在这个页面上有一个SSH Keys标签,点击Add SSH key。Title可以随便填一个,Key就粘贴刚才的字符,提交。

完成这些工作后,就可以上传自己的代码了。找到自己要分享上传的代码文件夹,右击选择Git Bash(推荐方法),或者在Git Bash中进入这个文件夹(这个需要输入命令,如果不会的话,就用上一种吧)。建立一个仓库:

1 git init

选择要添加进仓库的文件:

1 git add .

一般如果你想分享这个文件夹里的所有代码,就在 add后面加“.”,上面的例子就是这样,如果传指定的,只需要把“.”改为文件名即可,现在只是选择了要加入仓库的文件,下面才是添加进入仓库:

1 git commit -m 'Test'

-m后面跟一个参数,表示说明,将代码提交到GitHub后,将会在代码文件信息上显示这个说明,如下图标记的地方。

搞了这么久,现在才开始把本地仓库上传到GitHub了,下面两行命令搞定问题:

1 git remote add origin git@github.com:XXX/XXX.git

2 git push -u origin master

这个git@github.com:XXX/XXX.git就是上面创建项目是生成的地址。现在打开你的项目网址,你就可以发现你的代码已经展示出来了。如果你要更新代码的话,就重复上面的吧。

git修改文件后没提交怎么回复: (1) git checkout
恢复某个已修改的文件(撤销未提交的修改):
$ git checkout file-name
例如:git checkout src/com/Android/.../xxx.java
比如修改的都是java文件,不必一个个撤销,可以使用
$ git checkout *.java
撤销所有修改

$ git checkout .

(2) git revert
撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销
作为一次最新的提交
* git revert HEAD 撤销前一次 commit
* git revert HEAD^ 撤销前前一次 commit
* git revert commit-id (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容

如何查看本地代码是否提交到git: git branchgit checkoutgit loggit resetgit diff

怎样让Git忽略当前已经更改的文件: 忽略部分文件(如编译后的class文件、settings等 不必提交到远端的东东)
在代码目录下新建.ignore文件,内如如下
*.class //要忽略的文件后缀名 *为通配符
*.classpath
*.project

pay/.settings/ //要忽略的路径
pay/WebRoot/WEB-INF/classes/
如果这些文件还没提交到远端,一切Ok。
若果已经提交了 那么需要先 git rm(settings要先备份) 再重新 git commit ,然后再git push提交到远端(再将备份还原)。以后git 就不会再检查这些文件了

怎么查看ubuntu git版本: git查看提交历史
这是git中使用平率非常高的一个操作,git中查看提交历史的功能也非常强大,提供各种筛选和输出格式定制功能。
最简单的,运行git log命令,你将看到一个详细的提交日志:

git-log
# 当然也可以只查看某个版本
$ git log fd0a1b2
信息内容都很好理解,重点说说第一行commit后这个40个字符的字符串,这是该次提交的对应的SHA-1值,在git中,会对提交(commit)、文件(blob)、目录(tree)、标签(tag)生成一个唯一的SHA-1值,git就是基于此来得知文件或目录的改动,因为这四类对象计算得到的SHA-1值都是唯一的,同时你也可以直接使用SHA-1值来指代相应的对象。比如:
$ git show bdd3996
# 查看某个版本下具体某个文件
$ git show bdd3996 README
git log还有很多命令选项来定制历史记录
选项 说明
-(n) 仅显示最近的 n 条提交
–since,–after 仅显示指定时间之后的提交
–until,–before 仅显示指定时间之前的提交
–author 仅显示指定作者相关的提交
–committer 仅显示指定提交者相关的提交
–reverse 按时间倒序显示
-p 按补丁格式显示每个更新之间的差异
–stat 显示每次更新的文件修改统计信息
–shortstat 只显示 –stat 中最后的行数修改添加移除统计
–name-only 仅在提交信息后显示已修改的文件清单
–name-status 显示新增、修改、删除的文件清单
–abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符
–relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)
–graph 显示 ASCII 图形表示的分支合并历史

  • 186是哪个运营商

    轩辕剑怎么进入转生世界: 在轩辕剑中,想要进入转生世界,必须先让人物达到90级,进行转生。之后就可以进入转生世界了。  转生等级需求:90  人物等级达到90级后开启转生系统,转生后会有对应的转生时装  转生需要消耗十个转生丹,转生丹可在精彩...

    833条评论 2460人喜欢 3659次阅读 623人点赞
  • 10%的浓度是多少

    我厂采用的是AAO微曝氧化沟工艺,MLSS是2100mg/L,每天排泥量为4.2t,但总磷还是经常超标,是什么原因?: 总磷最终是要通过排泥来去除,但是不是说排泥了总磷就一定达标。对于AAO工艺,总磷超标的原因可能有排泥量不足,回流不够,厌氧区溶解氧过高,投加除磷药剂不足等方面原因。希望能再详细说明日处理水量,回流量,进水TP,出水T...

    361条评论 4346人喜欢 2706次阅读 371人点赞
  • nike有多少库存

    井盖里面有个东西卡着哪,打不开怎么办,有什么办法能打开: 使劲,天下武功以力为尊。 ...

    690条评论 2358人喜欢 1884次阅读 699人点赞
  • 2015dj排行榜第一是谁

    为什么我的快手发完不在同城出现,以前都出现,现在突然不出现了: 快手,指能手;做事迅速灵敏的人。如:编席快手。词目:快手拼音:kuaì shǒu注音:ㄎㄨㄞˋ ㄕㄡˇ英文:quick worker[1] 1.指动作敏捷,做事效率高。 麦云 《第一次出击》:“打球、走路、干活都快手...

    271条评论 5475人喜欢 2821次阅读 694人点赞