zoukankan      html  css  js  c++  java
  • 个人github链接及git学习心得总结

    组长:杨磊(计科高职13-3)201303014107

    Github仓库:https://github.com/yangleiwangximin/

    https://github.com/yangleiwangximin/test/blob/master/Test3.java

    第三题

    Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理

    http://code.google.com/p/msysgit/ 可以下载windows版本的

    http://www.pudn.com/search_db.asp?keyword=git 可以下载git 源码安装在linux

    1)解压 tar -zxvf git-1.6.0.tar.gz        2)进入解压目录 cd git-1.6.0        3)执行 make prefix=/usr/local all        4)执行  make prefix=/usr/local install

     

    有两种取得 Git 项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来。

    一.从当前目录初始化 Git init

    初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

    二.git clone ssh://r10003@192.168.10.124/git/mx28/linux-2.6-imx.git

    将远程仓库克隆到本地,目录名为linux-2.6-imx并在目录下创建.git目录。如果希望在克隆的时候,自己定义要新建的项目目录名称,

    可以在上面的命令最后指定:/linux-2.6-imx.git  Mylinux

    SSH 为建立在应用层和传输层基础上的安全协议。

    在客户端执行

    Ssh 用户名@192.168.10.124  //使用192.168.10.124某一指定的用户名和密码登陆

    后面的git/mx28就是目录了

     

    Git中从远程的分支获取最新的版本到本地有这样2个命令:相反就有一个命令

    git fetch:相当于是从远程获取最新版本到本地,不会自动merge

    git fetch origin master git log -p master..origin/master git merge origin/master

     

        以上命令的含义:    首先从远程的originmaster主分支下载最新的版本到origin/master分支上    然后比较本地的master分支和origin/master分支的差别    最后进行合并

    git pull:相当于是从远程获取最新版本并merge到本地

     

    git pull origin master

     

    上述命令其实相当于git fetch 和 git merge 在实际使用中,git fetch更安全一些 因为在merge前,我们可以查看更新情况,然后再决定是否合并

    git pull origin master是将origin这个版本库的代码更新到本地的master主分支

     

    git log    查看提交信息  看你commit的日志

    git log -p    查看历次的log信息及更改情况   看到的是跟补丁一样的修改信息

    git log -p -4    查看距现在最近的4次的log信息及更改情况

    git log frameworks/    查看关于frameworks/目录修改相关的log信息

    git log --stat    查看log显示文件修改情况

    git log --stat packages/apps/Contacts/    查看关于packages/apps/Contacts/目录修改相关的log显示的文件修改情况

    gitgitk的区别

    有时候图形化工具更容易展示历史提交的变化,随 Git 一同发布的 gitk 就是这样一种工具。它是用 Tcl/Tk 写成的,基本上相当于 git log 命令的可视化版本,凡是 git log 可以用的选项也都能用在 gitk 上。在项目工作目录中输入 gitk 命令后。上半个窗口显示的是历次提交的分支祖先图谱,下半个窗口显示当前点选的提交对应的具体差异。

     

    git status    查看工作目录和代码仓库的改动情况

     

    git diff 查看工作目录和本地仓库的差异或者本地仓库各个版本的差异

    git diff 会使用文件补丁的格式显示具体添加和删除的行。

    请注意,单单 git diff 不过是显示还没有暂存起来的改动,而不是这次工作和上次提交之间的差异。所以有时候你一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有,就是这个原因。 可以cat diff看一下实际的输出信息 cat: diff: No such file or directory

    git diff packages/apps/Contacts/AndoridManifest.xml    查看工作目录中AndoridManifest.xml和本地仓库中AndoridManifest.xml的不同

    git diff b46cae3b9a377bcd9cfc249a5778fce647feb961 dc94bf29aab18168e79d6496a89e47dba7a1d494    查看这两个版本的不同(git diff history_old history_current)

     

    git commit 提交当前修改内容 提交只是提交到本地仓库

    git commit file1 file2 -m "log message"    提交file1file2到本地仓库

    git commit -a -m "log message" 提交所有在Git索引中的改动  -a代表不用add

    有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用 --amend 选项重新提交:

    $ git commit -m 'initial commit'

    $ git add forgotten_file

    $ git commit --amend

    上面的三条命令最终得到一个提交,第二个提交命令修正了第一个的提交内容。

     

    git add 增加文件到Git索引

    git add file3 file4    file3file4加入到Git索引中   git add 仅是暂存不是提交

    git rm Git索引移除文件

    git rm file3    file3Git索引中删除

    git branch    对分支的增、删、查操作

    git branch    显示所有本地分支

    git branch new_branch    在当前版本创建一个名为new_branch的分支

    git branch -D new_branch    强制删除名为new_branch的分支

    git checkout    在不同的branch切换和还原文件

    git checkout branch1    切换到branch1分支 切换前最好把工作目录add并提交否则切换后会报错或者工作目录不换还原

    git checkout /packages/apps/Contacts/AndroidManifest.xml    会将AndroidManifest.xml文件从上一次提交的版本更新回来,未提交的部分会全部回滚

          

    git remote查看当前配置有哪些远程仓库

    git remote add pb git://github.com/paulboone/ticgit.git要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用

    git remote show origin查看某个远程仓库的详细信息

     

    git tag列显已有的标签

    git tag -a v1.4 -m 'my version 1.4'创建一个含附注类型的标签 V1.4

     

    git revert 是撤销某次操作,此次操作之前的commit都会被保留

    git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区

     

    git reset 将当前的工作目录完全回滚到指定的版本号

    git reset [--fixed] 3204f2f0bdfd6ada86c587b8927cdc5a15c586c1    只更新索引,不更新工作目录,也就是说所有的本地文件都不会更新

     

    打补丁

    一.方法一比较通用

    Git commit  比如在PATH分支提交后

    Git diff master>patch 创建补丁文件

    Git checkout master 回到主分支

    Git apply patch 通过patch打补丁

    二.

    Git conmmit 先在一个分支提交

    Git format_patch –M master 生成.patch补丁文件

    Git checkoutmaster 回到需要打补丁的分支

    Git am ***.patch 打补丁          打完补丁相当于完成一次提交

    遇到问题  错误提示信息

    previous rebase directory /home/hailong/Workspace/zhl/.git/rebase-apply still exists but mbox given.

    在用git am提交patch时,有时在提交失败后,继续提交时会出现/.git/rebase-apply still exists but mbox given错误,因为错误的提交导致git内部的数据出现了错误,因此继续提交patch就会报错,1.使用git am --abort命令将git的状态恢复到之前状态就可以继续提交patch了。2. 直接删除/home/hailong/Workspace/zhl/.git/rebase-apply这个目录的。

    每次提交patch之前需要执行review-commits命令来检查patch的编程规范,有错误的地方,都会有warningerror的提示,修改之后执行1. git add xxx 2. git commit –amend push

     

    $ git config --global user.name "Hailong"   设置用户信息

    $ git config --global user.email Hailong@example.com

    git config –list查看配置信息

     

    获取帮助

    想了解 Git 的各式工具该怎么用,可以阅读它们的使用帮助,方法有三:

    $ git help

    $ git --help

    $ man git-

     

    (转)技巧和窍门

    在结束本章之前,我还想和大家分享一些 Git 使用的技巧和窍门。很多使用 Git 的开发者可能根本就没用过这些技巧,我们也不是说在读过本书后非得用这些技巧不可,但至少应该有所了解吧。说实话,有了这些小窍门,我们的工作可以变得更简单,更轻松,更高效。

    2.7.1 自动完成

    如果你用的是 Bash shell,可以试试看 Git 提供的自动完成脚本。下载 Git 的源代码,进入 contrib/completion 目录,会看到一个 git-completion.bash 文件。将此文件复制到你自己的用户主目录中(译注:按照下面的示例,还应改名加上点:cp git-completion.bash /.git-completion.bash),并把下面一行内容添加到你的 .bashrc 文件中:

    source ~/.git-completion.bash

    也可以为系统上所有用户都设置默认使用此脚本。Mac 上将此脚本复制到 /opt/local/etc/bash_completion.d 目录中,Linux 上则复制到 /etc/bash_completion.d/ 目录中即可。这两处目录中的脚本,都会在 Bash 启动时自动加载。

    如果在 Windows 上安装了 msysGit,默认使用的 Git Bash 就已经配好了这个自动完成脚本,可以直接使用。

    在输入 Git 命令的时候可以敲两次跳格键(Tab),就会看到列出所有匹配的可用命令建议:

    $ git co

    commit config

    此例中,键入 git co 然后连按两次 Tab 键,会看到两个相关的建议(命令) commit 和 config。继而输入 会自动完成 git commit 命令的输入。

    命令的选项也可以用这种方式自动完成,其实这种情况更实用些。比如运行 git log 的时候忘了相关选项的名字,可以输入开头的几个字母,然后敲 Tab 键看看有哪些匹配的:

    $ git log --s

    --shortstat --since= --src-prefix= --stat --summary

    这个技巧不错吧,可以节省很多输入和查阅文档的时间。

    2.7.2 Git 命令别名

    Git 并不会推断你输入的几个字符将会是哪条命令,不过如果想偷懒,少敲几个命令的字符,可以用 git config 为命令设置别名。来看看下面的例子:

    $ git config --global alias.co checkout

    $ git config --global alias.br branch

    $ git config --global alias.ci commit

    $ git config --global alias.st status

    现在,如果要输入 git commit 只需键入 git ci 即可。而随着 Git 使用的深入,会有很多经常要用到的命令,遇到这种情况,不妨建个别名提高效率。

    使用这种技术还可以创造出新的命令,比方说取消暂存文件时的输入比较繁琐,可以自己设置一下:

    $ git config --global alias.unstage 'reset HEAD --'

    这样一来,下面的两条命令完全等同:

    $ git unstage fileA

    $ git reset HEAD fileA

    显然,使用别名的方式看起来更清楚。另外,我们还经常设置 last 命令:

    $ git config --global alias.last 'log -1 HEAD'

    然后要看最后一次的提交信息,就变得简单多了:

    Scott Chacon Pro Git 2.8节 小结

    $ git last

    commit 66938dae3329c7aebe598c2246a8e6af90d04646

    Author: Josh Goebel

    Date: Tue Aug 26 19:48:51 2008 +0800

    test for current head

    Signed-off-by: Scott Chacon

    可以看出,实际上 Git 只是简单地在命令中替换了你设置的别名。不过有时候我们希望运行某个外部命令,而非 Git 的附属工具,这个好办,只需要在命令前加上 就行。如果你自己写了些处理 Git 仓库信息的脚本的话,就可以用这种技术包装起来。作为演示,我们可以设置用 git visual 启动 gitk

    $ git config --global alias.visual "!gitk"

     

  • 相关阅读:
    怎样的配色能让你的作品高端!上档次呢?
    响应式布局的9项基本原则
    SOHO设计师如何保障自己的权益
    加载动态设计--等待的艺术创作思维
    初学者所必备的设计类网站
    网页设计师该向印刷设计学习的3个规则
    [并发编程] -- 内存模型(针对JSR-133内存模型)篇
    [并发编程] -- 线程池篇
    [并发编程] -- 容器和框架篇
    [并发编程] -- 工具类篇
  • 原文地址:https://www.cnblogs.com/yangdaxia/p/4452394.html
Copyright © 2011-2022 走看看