git学习笔记

git学习笔记
git学习笔记

Git 基础配置

1、用户信息

初次安装需要设置以后提交的用户名和邮件地址。设置时指定为—-global,也就是说以后的每一次操作默认都会以该配置生效。当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有--global选项的命令来配置。

$ git config --global https://www.360docs.net/doc/7618657160.html, "mrling"

$ git config --global user.email mrling_work@https://www.360docs.net/doc/7618657160.html,

2、指定文本编辑器

$ git config --global core.editor emacs

3、查看git配置

$ git config –list 查看所有配置

$ git config 查看指定配置

忽略文件.gitignore

Git 基本使用

基本命令

1、git init/git clone

创建本地仓库或者克隆已经存在的仓库,命令格式是git clone [url]

$ git init (在指定目录右键打开git bash 运行命令看到.git文件夹出现表示创建本地仓库成功)

$ git clone https://https://www.360docs.net/doc/7618657160.html,/libgit2/libgit2 mylibname(为克隆远程仓库并以mylibname名字报存)

2、git status

检查当前文件状态git status –s(-s简单显示)

$ git status

On branch master

nothing to commit, working directory clean

所有已跟踪文件在上次提交后都未被更改过。此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪状态的新文件,否则Git 会在这里列出来。最后,该命令还显示了当前所在分支,并告诉你这个分支同远程服务器上对应的分支没有偏离。

git add

可以跟踪一个文件,也可以将已跟踪修改过的文件放到暂存区中

@1命令git add开始跟踪一个文件

$ git add README

warning: LF will be replaced by CRLF in README.

The file will have its original line endings in your working directory.(正常提示,表示该文件未在远程仓库,不影响commit)

@2暂存已修改文件

$ git status

On branch master

Initial commit

Changes to be committed:

(use "git rm --cached ..." to unstage)

new file: README

Changes not staged for commit:

(use "git add ..." to update what will be committed)

(use "git checkout -- ..." to discard changes in working directory) modified: README

文件README出现在Changes not staged for commit这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。要暂存这次更新,需要运行git add命令。这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。将这个命令理解为“添加内容到下一次提交中”而不是“将一个文件添加到项目中”要更加合适。现在让我们运行git add将" README "放到暂存区,然后再看看git status的输出:

$ git status

On branch master

Initial commit

Changes to be committed:

(use "git rm --cached ..." to unstage)

new file: README

git diff

$ git diff

查看当前修改与已暂存的比较

$ git diff –staged(1.6以后版本) /$ git diff –cached

查看已暂存和即将提交到库里的内容比较

如果你喜欢通过图形化的方式或其它格式输出方式的话,可以使用git difftool命令来用Araxis ,emerge 或vimdiff 等软件输出diff 分析结果。使用git difftool --tool-help命令来看你的系统支持哪些Git Diff 插件。

git commit

$ git commit

$ git commit -m "20161205.11.34"

git commit –a -m "20161205.11.34" (跳过使用暂存区域,直接提交当前所有修改)

git rm

$ git rm a.txt 直接删除commit过的和工作区中数据,再次提交后就不会纳入版本管理中

$ git rm –f a.txt 删除修改并且保存到暂存区的数据(-f 防止误删commit过的数据)

$ rm a.txt 只是删除工作区的数据

$ git rm --cached README 只在git版本库中删除,但将文件保留本地工作区(即保留文件在磁盘,不让git继续跟踪)

$ git rm log/\*.log 删除以log目录下以.log结尾的文件

git mv

移动文件,也是重命名文件

$ git mv file_from file_to

git mv 命令就相当于执行以下三个命令

$ mv README.md README

$ git rm README.md

$ git add README

git log

git log –p -number 其中-p表示显示每次提交的差异–number 每次展示最近的number次提交

git log –-stat 显示每次提交的简略的统计信息

git log --pretty=oneline 其中--pretty可以指定使用不同于默认格式的方式展示提交历史,还有short,full和fuller可以用。

例如:

$ git log --pretty=format:"%h - %an, %ar : %s"

739c9ef - mrling, 3 hours ago : 13.47commit

322c3a0 - mrling, 5 hours ago : 2

8eafdb8 - mrling, 5 hours ago : 20161205.11.34

$ git log --before="2016-12-05 12:00:00" 仅显示2016-12-05 12:00:00之前的提交

选项说明

-(n)仅显示最近的n 条提交

--since, --after仅显示指定时间之后的提交。

--until, --before仅显示指定时间之前的提交。

--author仅显示指定作者相关的提交。

--committer仅显示指定提交者相关的提交。

--grep仅显示含指定关键字的提交

-S仅显示添加或移除了某个关键字的提交

选项说明

-p按补丁格式显示每个更新之间的差异。

--stat显示每次更新的文件修改统计信息。

--shortstat只显示--stat 中最后的行数修改添加移除统计。

--name-only仅在提交信息后显示已修改的文件清单。

--name-status显示新增、修改、删除的文件清单。

--abbrev-commit仅显示SHA-1 的前几个字符,而非所有的40 个字符。

--relative-date使用较短的相对时间显示(比如,“2 weeks ago”)。

选项说明

--graph显示ASCII 图形表示的分支合并历史。

--pretty使用其他格式显示历史提交信息。可用的选项包括oneline,short,full,fuller

和format(后跟指定格式)。

Table 2-1. git log --pretty=format常用的选项选项说明

%H提交对象(commit)的完整哈希字串

%h提交对象的简短哈希字串

%T树对象(tree)的完整哈希字串

%t树对象的简短哈希字串

%P父对象(parent)的完整哈希字串

%p父对象的简短哈希字串

%an作者(author)的名字

%ae作者的电子邮件地址

%ad作者修订日期(可以用--date= 选项定制格式)

%ar作者修订日期,按多久以前的方式显示

%cn提交者(committer)的名字

%ce提交者的电子邮件地址

%cd提交日期

%cr提交日期,按多久以前的方式显示

%s提交说明

git commit –amend(重新提交)

有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。此时,可以运行带有--amend选项的提交命令尝试重新提交:

$ git commit -m 'initial commit'

$ git add forgotten_file

$ git commit --amend

git reset HEAD(取消暂存)

git checkout(撤销对文件的修改)

$ git checkout -- a.txt 对未提交到暂存区文件修改的撤回。

$ git reset HEAD a.txt 对已经提交到暂存区的文件需要先将文件从暂存区撤回,再checkout

$ git checkout -- a.txt

远程仓库

git remote()

git remote –v会显示读写远程仓库使用的Git 保存的简写和对应的URL。

$ git remote add pb https://https://www.360docs.net/doc/7618657160.html,/paulboone/ticgit添加远程仓库

示例:

$ git remote

origin

$ git remote add pb https://https://www.360docs.net/doc/7618657160.html,/paulboone/ticgit

$ git remote -v

origin https://https://www.360docs.net/doc/7618657160.html,/schacon/ticgit (fetch)

origin https://https://www.360docs.net/doc/7618657160.html,/schacon/ticgit (push)

pb https://https://www.360docs.net/doc/7618657160.html,/paulboone/ticgit (fetch)

pb https://https://www.360docs.net/doc/7618657160.html,/paulboone/ticgit (push)

git fetch(抓取)

$ git fetch [remote-name] 访问远程仓库(如果你是克隆的仓库,则默认生成的origin 就是remote-name这个参数的值,也可以是地址),从中拉取所有你还没有的数据。执行完成后,你将会拥有那个远程仓库中所有分支的引用。但并不会自动合并或者修改你当前的工作。

git push(推送到远程仓库)

$ git push [remote-name] [branch-name]

$ git push origi n master 将master 分支推送到origin服务器

git remote show(查看远程仓库)

$ git remote show origin

* remote origin

Fetch URL: https://https://www.360docs.net/doc/7618657160.html,/chwshuang/web.git

Push URL: https://https://www.360docs.net/doc/7618657160.html,/chwshuang/web.git

HEAD branch: master

Remote branches:

20161128_angularjs_admin_back tracked

master tracked

Local branch configured for 'git pull':

master merges with remote master

Local ref configured for 'git push':

master pushes to master (up to date)

它同样会列出远程仓库的URL 与跟踪分支的信息。这些信息非常有用,它告诉你正处于master 分支,并且如果运行git pull,就会抓取所有的远程引用,然后将远程master 分支合并到本地master 分支。它也会列出拉取到的所有远程引用。

git tag(标签)

轻量标签(lightweight)与附注标签(annotated)

一个轻量标签很像一个不会改变的分支- 它只是一个特定提交的引用。

然而,附注标签是存储在Git 数据库中的一个完整对象。它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;并且可以使用GNU Privacy Guard (GPG)签名与验证。通常建议创建附注标签,这样你可以拥有以上所有信息;但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存那些信息,轻量标签也是可用的。

$ git tag 列出已有的标签

v1.0

@创建附注标签

$ git tag -a "v1.0" -m "this is my first tag and version is 1.0" -a指定创建附注标签,-m指定存储在标签中的信息,如果不指定-m则会自动运行编辑器让你输入信息。

$ git show v1.0 查看标签信息与对应的提价信息

@创建轻量标签,不需要使用-a、-s或-m选项,只需要提供标签名字

$ git tag v1.3_qlbq 创建轻量标签(lightweight)指定标签名称即可

$ git show v1.3_qlbq 只会显示提交信息

@根据校验和补打标签

$ git tag -a v1.0.0 8eafdb87acf7543de09576b39a13dc97073237c9 -m "this is begin"

@共享标签。git push 命令并不会传送标签到远程仓库服务器上。在创建完标签后你必须显式地推送标签到共享服务器上。这个过程就像共享远程分支一样 - 你可以运行

$ git push origin [tagname]。指定标签推送到远程仓库

$ git push origin –tags 将所有标签推送到远程仓库

@检出标签

git checkout -b [branchname] [tagname]

git alias(别名)

在创建你认为应该存在的命令时这个技术会很有用。$ 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使用教程

Git使用教程 原文出处:涂根华的博客 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。 Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是 一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。 三:在windows上如何安装Git? msysgit是 windows版的Git,如下: 需要从网上下载一个,然后进行默认安装即可。安装完成后,在开始菜单里面找 到“Git –> Git Bash”,如下: 会弹出一个类似的命令窗口的东西,就说明Git安装成功。如下:

安装完成后,还需要最后一步设置,在命令行输入如下: 因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。 注意:git config –global 参数,有了这个参数,表示你这台机器上所有的Git 仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。四:如何操作? 一:创建版本库。

Git命令学习Git使用习惯git-cheatsheet-中文注释

presented by TOWER ? Version control with Git - made easy GIT CHEAT SHEET CREATE Clone an existing repository $ git clone ssh://user@https://www.360docs.net/doc/7618657160.html,/repo.git Create a new local repository $ git init LOCAL CHANGES Changed files in your working directory $ git status Changes to tracked files $ git diff Add all current changes to the next commit $ git add . Add some changes in to the next commit $ git add -p Commit all local changes in tracked files $ git commit -a Commit previously staged changes $ git commit Change the last commit Don‘t amend published commits! $ git commit --amend COMMIT HISTORY Show all commits, starting with newest $ git log Show changes over time for a specific file $ git log -p Who changed what and when in $ git blame BRANCHES & TAGS List all existing branches $ git branch -av Switch HEAD branch $ git checkout Create a new branch based on your current HEAD $ git branch Create a new tracking branch based on a remote branch $ git checkout --track Delete a local branch $ git branch -d Mark the current commit with a tag $ git tag UPDATE & PUBLISH List all currently configured remotes $ git remote -v Show information about a remote $ git remote show Add new remote repository, named $ git remote add Download all changes from , b ut don‘t integrate into HEAD $ git fetch Download changes and directly merge/integrate i nto HEAD $ git pull Publish local changes on a remote $ git push Delete a branch on the remote $ git branch -dr Publish your tag s $ git push --tags MERGE & REBASE Merge into your current HEAD $ git merge Rebase your current HEAD onto Don‘t rebase published commits! $ git rebase Abort a rebase $ git rebase --abort Continue a rebase after resolving conflicts $ git rebase --continue Use your configured merge tool to solve conflicts $ git mergetool Use your editor to manually solve conflicts and (after resolving) mark file as resolved $ git add $ git rm UNDO Discard all local changes in your working directory $ git reset --hard HEAD Discard local changes in a specific file $ git checkout HEAD Revert a commit (by producing a new commit with contrary changes) $ git revert Reset your HEAD pointer to a previous commit …and discard all changes since then $ git reset --hard …and preserve all changes as unstaged changes $ git reset …and preserve uncommitted local changes $ git reset --keep 对于某个文件的修改:时间、地点、人物 某个文件的最近一次修改stage所有修改,注意点号 其实可用reflog找到 并恢复该版本。 把和上个commit之间的修改放回工作区。 跳过git add,不建议 修补,而不是revert 常用 git commit --amend --no-edit

Eclipse中git的基本使用

一、安装E G I T插件 二、使用EGIT前的配置 三、新建GIT仓库 四、配置.gitignore文件 五、查看历史记录 六、推送远程仓库 七、远程GIT仓库 八、解决推送冲突 九、重置功能 一、安装EGIT插件 现在的eclipse一般都自带了,如果没有,使用EclipseMarketplace,搜索EGit 二、使用EGIT前的配置 配置个人信息,最重要的是https://www.360docs.net/doc/7618657160.html,和user.email Preferences>Team>Git>Configuration addEntry 三、新建GIT仓库 新建hh_monitor项目 File>Team>ShareProject选择GIT 创建仓库后,在$ProjectWorks\hh_monitor目录下的.git文件夹,就是git的仓库地址。 和CVS、SVN不同,GIT不会在每一个目录下建立版本控制文件夹,仅在根目录下建立仓库。 同时,eclipse中的project也建立git版本控制,此时未创建分支,处于NO-HEAD状态

文件夹中的符号””表示此文件夹处于untracked状态,这样就成功创建GIT 仓库。 四、配置.gitignore文件 配置.gitignore,排除不需要提交的文件。 此时我们尝试做一次提交,Team->Commit 如上图所示,Author和Committer会默认为Git配置的用户信息。 下面的Files窗口中可以看到此次提交的文件,其中有非常多带有work的文件,此时,在我们的project中链接的work也被GIT默认到版本控制中了。 work下面的文件不需要进行版本控制的,我们可以通过配置.gitignore来排除这这个文件夹。 打开Navigator窗口,在project根目录中添加.gitignore文件,将需要排除控制的目录写入.gitignore文件中。 再次尝试commit,需要提交的文件已经被过滤。 首次提交后,会自动生成master分支 然后在com.hh中新建一个文件,可以看到图标依然是问号,处于untracked状态,即git没有对此文件进行监控。 通过Team->Addtoindex可以将文件加入git索引,进行版本监控 PS:可以看到图标显示也有了变化(EGIT中只要Commit就可以默认将untracked的文件添加到索引再提交更新,不需要分开操作) 也可以通过Team->Untrack将文件从索引控制中排除。 将此次新增的文件commit到仓库中,文件将处于unmodified状态,或者说,这就是一种staged状态 然后修改文件的内容,文件将处于modified状态 五、查看历史记录 Team->Showinhistory可以查看版本历史提交记录 可以选择对比模式 六、推送远程仓库

Git 常用命令速查

一、Git 常用命令速查 git push origin :分支名删除远程库分支 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am "init" 提交并且加注释 git remote add origin git@192.168.1.119:ndshow git push origin master 将文件给推到服务器上 git remote show origin 显示远程库origin里的资源 git push origin master:develop git push origin master:hb-dev 将本地库与服务器上的库进行关联 git checkout --track origin/dev 切换到远程dev分支 git branch -D master develop 删除本地库develop git checkout -b dev 建立一个新的本地分支dev git merge origin/dev 将分支dev与当前分支进行合并 git checkout dev 切换到本地dev分支 git remote show 查看远程库 git add . 目录下所有的文件 git rm 文件名(包括路径) 从git中删除指定文件 git clone git://https://www.360docs.net/doc/7618657160.html,/schacon/grit.git 从服务器上将代码给拉下来 git config --list 看所有用户 git ls-files 看已经被提交的 git rm [file name] 删除一个文件 git commit -a 提交当前repos的所有的改变 git add [file name] 添加一个文件到git index git commit -v 当你用-v参数的时候可以看commit的差异 git commit -m "This is the message describing the commit" 添加commit信息git commit -a -a是代表add,把所有的change加到git index里然后再commit git commit -a -v 一般提交命令 git log 看你commit的日志 git diff 查看尚未暂存的更新 git rm a.a 移除文件(从暂存区和工作区中删除) git rm --cached a.a 移除文件(只从暂存区中删除) git commit -m "remove" 移除文件(从Git中删除) git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除) git diff --cached 或$ git diff --staged 查看尚未提交的更新 git stash push 将文件给push到一个临时空间中 git stash pop 将文件从临时空间pop下来 --------------------------------------------------------- git remote add origin git@https://www.360docs.net/doc/7618657160.html,:username/Hello-World.git

git、gerrit的使用方法和规范方案

git、gerrit的使用方法和规范 1、新员工git安装环境准备 首先从服务器端 ftp://192.168.31.10/Software/Tool/Git/ (用户名/密码 paypalm/paypalms)获取软件Git-1.9.4-preview20140929 1、默认安装 Git-1.9.4-preview20140929 安装完成后打开git bash编辑器 生成密钥对:ssh-keygen -t rsa 按三次回车键,默认生成路径如下图

将生成的公钥内容在gerrit中进行添加(参考下文gerrit注册使用)每个人不同环境可以添加多个对应的公钥cat ~/.ssh/id_rsa.pub 2、gerrit注册使用 1、申请账号 通过邮件向PPCM@https://www.360docs.net/doc/7618657160.html,发邮件申请,打开gerrit网站 (http://192.168.31.10:8088),登录后在右上角进行setting设置

2、公钥添加 点击SSH Public Keys》Add Key选项进行公钥添加

3、邮箱注册 点击Register New Email 进行邮箱注册,注册后有邮件发送至你的邮箱点开链接重新登录 3、gerrit主要功能介绍 1、常规功能 1、登录gerrit》ALL》open状态,此显示为已推送但还没有入库的所有patch,CR状态栏中绿色对勾代表已评审状态,可以根据计划入库 2、gerrit》ALL》Merged状态表示所有已经进入项目库的patch

3、提交patch后,开发人员可能觉得不太满意会选择放弃,gerrit》ALL》Abandoned 即为已放弃的patch,只有还没有入库的patch才能选择放弃,点击进入patch,橘黄色Abandon即为放弃选项,放弃后的patch依然可以进行还原,如以下操作 橘黄色Restore为还原选项

Git+使用教程

Git 中文教程 介绍 Git --- The stupid content tracker, 傻瓜内容跟踪器。Linus 是这样给我们介绍 Git 的。 Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。 实际上内核开发团队决定开始开发和使用 Git 来作为内核开发的版本控制系统的时候,世界开源社群的反对声音不少,最大的理由是 Git 太艰涩难懂,从 Git 的内部工作机制来说,的确是这样。但是随着开发的深入,Git 的正常使用都由一些友好的脚本命令来执行,使 Git 变得非常好用,即使是用来管理我们自己的开发项目,Git 都是一个友好,有力的工具。现在,越来越多的著名项目采用 Git 来管理项目开发,例如:wine, U-boot 等,详情看https://www.360docs.net/doc/7618657160.html,/git 作为开源自由原教旨主义项目,Git 没有对版本库的浏览和修改做任何的权限限制。它只适用于 Linux / Unix 平台,没有 Windows 版本,目前也没有这样的开发计划。 本文将以 Git 官方文档Tutorial,core-tutorial和Everyday GIT作为蓝本翻译整理,但是暂时去掉了对 Git 内部工作机制的阐述,力求简明扼要,并加入了作者使用 Git 的过程中的一些心得体会,注意事项,以及更多的例子。建议你最好通过你所使用的 Unix / Linux 发行版的安装包来安装 Git, 你可以在线浏览本文,也可以通过下面的命令来得到本文最新的版本库,并且通过后面的学习用 Git 作为工具参加到本文的创作中来。 $ git-clone https://www.360docs.net/doc/7618657160.html,/git/gittutorcn.git 创建一个版本库:git-init-db 创建一个 Git 版本库是很容易的,只要用命令git-init-db就可以了。现在我们来为本文的写作创建一个版本库: $ mkdir gittutorcn $ cd gittutorcn $ git-init-db git 将会作出以下的回应 defaulting to local storage area 这样,一个空的版本库就创建好了,并在当前目录中创建一个叫 .git 的子目录。你可以用 ls -a 查看一下,并请注意其中的三项内容: ● 一个叫 HEAD 的文件,我们现在来查看一下它的内容:

TortoiseGit用户手册

TortoiseGit用户手册 1.创建本地仓库 选中本地文件夹右键—>Git在这里创建版本库;只在根目录出现一个名为.git的库管理文件夹。建好本地仓库后,需把仓库名发给管理员,管理员配置好远端及权限后,才可推送。 2.克隆远程的版本库 在本地目录右键—>Git克隆,输入远程仓库地址和本地副本目录 3.添加文件及文件夹 在文件夹中右键,选择"Git提交(C)",在提交窗口中选择所有需要提交的文件夹及文件并输入有效的注释。 add添加到暂存区,commit提交到本地仓库,push推送到远端。push是将本地仓库的元素推送到远端,暂存区和未受版本控制的不可被推送。

4.比较版本差异 选中需要查看提交记录的文件或文件夹,右键Git—>显示日志—>选择需要比较差异的两个版本,右键“比较版本差异”。(注意是比较已提交到本地仓库的版本差异,Git的比较差异菜单是比较工作副本和本地仓库的差异) 5.使用分支 5.1分支策略 主分支master:用于发布版本 开发分支develop:日常开发分支需要合并到master分支 临时性分支:功能分支feature、预发布分支release、修复bug分支fixbug. 功能分支从develop中分支出来,开发完成后再合并入develop后即可删除,名字采用feature-* 的形式命名。 预发布分支在正式颁布前,需要一个预发布的版本测试。从develop中分支出来,用完后合并到develop分支和master分支。 fixbug分支从master拉出,完成后合并到master并同步到develop分支。 5.2 分支创建 选中需要创建分支的项目,右键—>tortoiseGit—>创建分支。在弹出的窗口输入分支名,并选择合适的基准分支:

github使用教程

1、什么是GIT Git是一个强调速度的分布式版本控制软件和源代码管理系统(SCM, source code management)。Git最初是由Linus Torvalds为内核开发而设计的管理软件。自从Git推出以来,已经被很多开源项目所采纳。每一个Git工作目录是一个带有完全历史记录和版本信息的仓库,不依赖于网络和中央服务器。Git是一个免费的开源软件,遵从GNU v2协议。 Git这个词在英语中的原意是很笨拙,没用的人。Linus自嘲说:“我是一个任性的笨蛋,所以我把我的所有的项目的名字都和我很相似。第一个是Linux,现在是Git。”Git的帮助文档中描述Git为:笨拙的内容跟踪者(the stupid content tracker)。(翻译自WIKI) 关于开发Git的一些历史由来,可以看看这个网站:https://https://www.360docs.net/doc/7618657160.html,/lkml/2005/4/6/121 2、为什么要用GIT ?更顺畅的工作流程,开发过程中,完全可以离线操作 ?快速,Git分布式架构使得本地仓库包含所有的历史版本信息,你可以在不同的版本之间快速切换 ?弹性的本地分支,在svn下,你建一个分支需要把源代码复制到另外一个文件夹,而在Git下,创建分支的代价是非常小的,只需一条命令 ?仓库目录结构简洁,用Git复制一个项目,只会在项目根目录创建一个.git的目录,而其他目录很干净 ?内容按元数据方式存储,所有的版本信息都位于.git目录下 ?完整性好,更易于协作开发 ?用户群大,现在已经有成千上万个开源项目采用Git来做项目管理,github上更是有无数个代码仓库 3、GIT安装与配置 a) 安装 1.从源码安装 在安装之前,你必须保证以下几个依赖包已经安装在你的系统上: curl, zlib, openssl, expat, libiconv。如果你的系统是Ubuntu,你可以这样安装: apt-get install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 当所有的依赖项已经解决,就可以从https://www.360docs.net/doc/7618657160.html,/download上下载Git的源码,然后编译安装,具体命令如下: tar -zxf git-1.*.*.*.tar.gz cd git-1.*.* make prefix=/usr/local all sudo make prefix=/usr/local install

gerrit git 常用操作

gerrit/git常用操作 1、代码下载方法 a. 下载整个工程代码: repoinit …… repo sync b. 下载部分模块代码 repoinit …… repo sync + projectPath 2、通过repo 提交代码 a.下载所需修改模块的代码 mkdir Test cd Test repoinit …… repo sync projectName b. 建立新分支:repo start branchName . / repo start branchNameprojectName c. 修改代码 d. git add . (提交所有修改到git缓冲区) / git add + FileName(只提交指定文件) e. git commit -s 格式要求: module: submodule: Message Title Blablabla Message Content Blablablablablablablablabla Ticket: APOLLO-20472 f. repo upload . / repo upload projectName g. 评审代码并submit。 3、直接通过gerrit pick Patch a.在gerrit上打开需要pick的patch b.点击“Cherry Pick To”按钮,在弹出的对话框中输入需要pick到的branch. 注意:如果无法直接pick过来,网页会直接报错,此时则需要按下面的步骤4手动pick,并解决冲突。 c.成功pick之后,会生成一个新的gerrit提交,并自动在Reviewer中加入了原Author,merge 之前让原Author确认。 d.评审代码并submit。 4、Pick冲突解决: 如果在gerrit上直接pick产生冲突,需要手动pick,并解决冲突:

git简单入门教程

安装完成后,在命令行输入: $ git config --global https://www.360docs.net/doc/7618657160.html, "Your Name" $ git config --global user.email "email@https://www.360docs.net/doc/7618657160.html," 选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit 通过git init命令把这个目录变成Git可以管理的仓库: $ git init Initialized empty Git repository in /Users/michael/learngit/.git/ 编写一个readme.txt文件,一定要放到learngit目录下(子目录也行), 因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。内容如下: Git is a version control system. Git is free software. 修改的过程 第一步,用命令git add告诉Git,把文件添加到仓库://可以一次添加多个文件,然后分一次提交就行了 $ git add readme.txt 第二步,用命令git commit告诉Git,把文件提交到仓库: $ git commit -m "wrote a readme file" [master (root-commit) cb926e7] wrote a readme file 1 file changed, 2 insertions(+) create mode 100644 readme.txt git status 命令可以让我们时刻掌握仓库当前的状态 git diff 能看看具体修改了什么内容 git log命令显示从最近到最远的提交日志 如果嫌输出信息太多,看得眼花缭乱的, 可以试试加上--pretty=oneline $ git log --pretty=oneline

gitlab issue详细操作流程

gitlab issue详细操作流程 issue概述 一般master分支默认是被锁住,其目的是保护该分支。普通开发人员可以创建issue后建立对应的分支然后去完成任务。完成issue后便要合并分支,只需发送merge request ,等待owner审核通过才能合并到master分支上。合并的过程中可能会出现代码冲突问题。而这个问题却交给了owner去处理,因为普通开发人员是没有权限的。 Issue 指的是一项待完成的工作,通常与系统的改进相关,中文可以译为'问题'或'事务'。下面这些都是Issue 的例子。 一个软件的bug。 一项功能建议。 一项待完成的任务。 文档缺失的报告。 每个Issue 应该包含该问题的所有信息和历史,使得后来的人只看这个Is sue,就能了解问题的所有方面和过程。历史上,Issue 起源于客服部门。用户打电话反映问题,客服就创建一个工单(ticket),后续的每一个处理步骤、每一次与用户的交流,都要更新工单,记录全部信息。这就是Issue 的前身。因此,Issue 的原始功能是问题追踪和工单管理,后来不断扩展,逐渐演变成全功能的项目管理工具,还可以用于制定和实施软件的开发计划。

除了软件,其他项目也可以使用Issue,比如有人把自己住宅的改善计划都做成了Issue Issue操作流程 1.what用户克隆代码到本地。 假如我们创建好了项目,并添加了开发人员what账户。项目地址是: http地址:http://192.168.99.102/root/cloud-dev.git Ssh地址:git@192.168.99.102:root/cloud-dev.git 作为一个开放人员what,第一步我们需要将仓库拉到本地电脑上去。为了方便拉取仓库,这里详细说明下用sshkey秘钥认证拉取仓库。在what研发电脑上创建一个秘钥。打开Gui,选择Help-Show SSH Key。

GIT使用操作指南

GIT使用说明GIT使用说明

说明 本文档只是日常工作中一些使用步骤的简单归纳,旨在帮助大家快速用上GIT,如 有疏漏,请大家发邮件yuxiao.qiao@https://www.360docs.net/doc/7618657160.html,,会及时进行改进,谢谢。文档简介 1.安装支持中文文件名的Git 命令行软件包MsysGit。 2.在MsysGit 中生成用来访问Git 版本控制库的公钥数据。 3.安装Git 图形界面客户端软件TortoiseGit。 4.配置TortoiseGit。 5.在服务器中新建版本库。 6.TortoiseGit使用简介。

目录 1.安装MSYSGIT (3) 2.生成SSH 密钥 (7) 2.1.Linux系统 (7) 2.2.Windows操作系统 (8) 2.3.添加ssh文件 (9) 3.安装TORTOISEGIT (11) 4.配置TORTOISEGIT (12) 5.新建版本库 (14) 6.TORTOISEGIT使用 (15) 6.1.Clone版本库 (16) 6.2.设置参数 (17) 6.3.新增文件 (18) 6.4.修改文件 (23) 6.5.删除文件 (28)

GIT 使用指南1.安装MsysGit 1.下载安装程序,下载地址: https://www.360docs.net/doc/7618657160.html,/files/Git-1.8.1.2-preview20130201.exe 2.双击安装软件,进入安装页面,单击“next”,在以下页面中设置软件安装路 径。 3.配置命令行快捷方式,在安装中会出现设置如何与Windows 的文件浏览器结 合的界面,设置成“可在目录上点右键直接进入该目录的Git 命令行”,如 下图所示:

Git版本控制的安装使用指南

1. 概述 Git是基于Linux内核开发的分布式版本控制/软件配置管理软件,与CVS、Subversion 等集中式版本控制软件不同,Git采用分布式管理,不需要服务器端软件即可运行。Git速度很快,并且具有很出色的合并追踪能力。很多有名的软件开发都使用Git来进行版本控制,其中有Linux内核、https://www.360docs.net/doc/7618657160.html,服务器和OLPC内核开发等。 作为开源软件的代表,Git不对版本库的浏览和修改作任何的权限限制,因此只能采用其他工具实现权限管理,如gitosis、gitolite、CodeBeamer MR。 原本Git的使用只限于Linux/Unix,由于Cygwin、msysgit、TortoiseGit等GUI工具的出现,在Windows平台的使用逐渐成熟。 2. Git安装 2.1 安装Git 安装Git作为客户端,运行客户端可通过Git Bash(Git的命令行)或Git GUI操作。Windows下使用Git-1.7.8-preview20111206.exe,安装要点如下:

上述图片所示选项,似乎也不确定,网上帖子安装教程各种选项都有。安装完后,点击桌面Git Bash启动,执行命令pwd查看默认进入的文件目录,执行下面命令:mkdir .ssh (注意文件名前有.),即在默认目录下建立.ssh文件夹。修改环境变量,桌面右击我的电脑, 在属性中选择高级选项,左击环境变量,在系统变量中选择新建或编辑

下面列出一些问题的解决方法: a. Git Bash中ls不能显示中文目录(可直接打开编辑):在 git/etc/git-completion.bash中增加一行: alias ls='ls --show-control-chars --color=auto',注意引号为中文单引号,重启Git Bash b. Git commit不能提交中文注释:修改git/etc/inputrc中对应的行: set output-meta on set convert-meta off c. git log无法显示中文注释,在git/etc/profile中增加一行: export LESSCHARSET=iso8859 安装完后,需要在Git Bash中注册本人信息: git config --global https://www.360docs.net/doc/7618657160.html, Your Name git config --global user.email your@email.address 在服务端,即Ubuntu,安装Git: sudo apt-get install git-core git-doc 3. Gitolite安装

GITM培训手册

系统操作流程 一、G ITM管理系统 内容管理 1.0登录GITM内容管理系统:http://19 2.168.2.7/cms/admin/cms/index.do 用户名:admin 密码:password 注意:admin是最大权限用户,本文以最大权限用户编写。 1.1点击内容,可查看全部信息。

点击左侧导航-信息频道->公司动态,显示该栏目文章列表。(以信息频道为例) 1.2信息发布流程。 鼠标定位到发布,显示可发布信息的栏目

点击发布->信息频道。 进行内容填写 (注意:发布->服务频道进到上述页面,栏目只可以选择信息频道向下的五个子栏目,否则因模板混乱而报错。 指定模板选择/default/content/infopd.html,此模板为信息频道文章详情页。 ) 点击提交,发布文章。

1.2.1信息修改。 点击“内容”->“公司动态”,查询到公司动态所有信息,如下。

选择要更改的数据点击修改。 修改完后,点击提交。修改成功。 注意:在修改信息频道中的内容时,因为前台主页中的公司动态/媒体新闻/公告信息静态化的原因,不能将栏目修改成信息频道下的其他栏目。 例如,将公司动态修改为媒体新闻,这样操作,会使该数据还显示在前台公司动态模块

中;也不能将公司动态修改成服务频道下的子栏目,否则,会因为指定模板错误,使得该文章在前台展示混乱。 在修改服务频道中的内容时,可以将栏目改为服务频道下的其他栏目;但是不能更改成信息频道的子栏目,因为指定模板错误。 1.2.3信息删除。 1.单笔删除 点击“内容”->“公司动态”,选中所要删除的数据,点击删除 点击确认,删除成功。 2.批量删除 选中要删除的批量数据,点击删除

gitlab使用指南

gitlab使用指南 1 gitlab介绍 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 GitLab是基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 GitLab,它使用Ruby语言写成。后来,一些部分用Go语言重写。 2应用特点 1.Web框架使用RubyonRails。 2.基于MIT代码发布协议。 3.需要gitolite协同工作 3优点 GitLab为整个DevOps生命周期提供解决方案 1.管理 统计和分析功能。 GitLab提供统计数据和洞察力,以帮助提高GitLab在组织中的价值。 2.计划 项目计划和管理功能。 使用GitLab灵活的项目管理工具可视化,确定优先级,协调和跟踪进度。 3.创造 源代码以及数据创建和管理功能。 将源代码整合到一个易于管理和控制的分布式版本控制系统中,而不会影响工作流程。GitLab的Git存储库附带分支工具和访问控制,可为项目和代码的协作提供可扩展的单一事实来源。 4.校验 测试,代码质量和持续集成功能。 内置的静态代码分析,代码测试,代码质量,依赖项检查和Review Apps可以更快地发现错

误,提高安全性并缩短反馈周期。自定义您的批准工作流控件,自动测试代码质量,并为每个代码更改启动过渡环境。 GitLab持续集成是下一代测试系统,可以扩展以更快地运行测试。 5.包 Docker容器注册表。 GitLab软件包允许组织将GitLab用作各种常见软件包管理器的专用存储库。用户能够构建和发布程序包,这些程序包可以很容易地作为下游项目中的依赖项使用。 6.发布 应用程序发布和交付功能。 花更少的时间配置工具,而花更多的时间创建工具。无论要部署到一台服务器还是数千台服务器,都可以通过GitLab内置的持续交付和部署来自信,安全地构建,测试和发布代码。 7.配置 应用程序和基础结构配置工具。 使用GitLab Auto DevOps自动执行从构建到部署和监视的整个工作流程。最佳实践模板可帮助您从最小到零的配置开始。然后自定义所有内容,从构建包到CI / CD。 8.监控 应用程序监视和指标功能。 确保应用程序始终响应并可用。 GitLab会收集并显示已部署应用程序的性能指标,因此可以立即知道代码更改如何影响生产环境。 9.安全 安全功能功能。 检查应用程序是否存在安全漏洞,这些漏洞可能导致未经授权的访问,数据泄漏和服务拒绝。GitLab将对应用程序代码执行静态和动态测试,查找已知缺陷并在合并请求中报告这些缺陷,以便可以在合并之前修复它们。安全团队可以使用仪表板来获得项目和组的高级视图,并在需要时启动补救过程。 4运行gitlab gitlab-ctl start

GIT使用入门详细教程

GIT使用入门 Part 1 第一章基本原理 git是一个版本控制系统。官方的解释是:版本控制(Revision control)是一种软 件工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。按我的白话文解释就是:一群志同道合的人身处祖国各地,希望来合作开发一个 项目,假设这个项目是使用c语言写的(当然用任何语言都可以的)。那么大家怎么合作呢?用信件?效率太低。用邮件,不好实现多人沟通。用google group吧,可开发阶段中的源代码没法科学管理。用自建的网站吧,需要人力物 力财力来支撑阿。 这个时候版本控制系统就派上用场了。它可以让一个团队里的不同的人在不同地点、不同时间开发和改进同一个项目,并且在大部分的时间里,版本控制系统会聪明的帮你把不同的人在不同地点不同时间修改的代码融合到项目中去。(当然在一些特殊的情况,还是需要人去决定到底哪些代码需要加入到项目中,这个在后面讨论不迟,先让大家对版本控制有一个好印象,呵呵) 知道了版本控制系统的优点之后,下面就要具体实践和体验了。建议你选用的版本控制系统包括: rcs,cvs,svn,git,Mercurial,Bazzar等等。 当然git,Mercurial和Bazzar都是属于分布式版本控制系统。 下面是一些网友对于这些版本控制系统评论的只言片语: 1)svk配合svn可以实现分布式的版本控制。 2) 我是从SVN转到Git下的。我想Git的优势是速度飞快,谁用谁知道! 3) git的确是最快的,bzr慢的要死 4) SVN 在windows 下有TortoiseSVN 5) git 有Windows 版本,在google code 上的项目。https://www.360docs.net/doc/7618657160.html,/p/msysgit/ 6) 大家可以试试国内提供的git服务。https://www.360docs.net/doc/7618657160.html, 那么,简单地说,Git 究竟是怎样的一个系统呢?请注意,接下来的内容非常重要,若是理解了Git 的思想和基本的工作原理,用起来就会知其所以然,游刃

TortoiseGit使用教程详解

TortoiseGit入门教程--参考资料:TortoiseGit帮助文档

目录 1、关于版本控制 (3) 2、TortoiseGit安装: (3) 2、TortoiseGit文件夹图标说明: (9) 3、克隆远程库 (10) 4、对文件进行修改 (13) 5、提交更改。 (14) 6、push推送变更到库 (18) 7、从远程库更新 (19) 8、与远程库同步 (20) 9、解决冲突 (24) 10、TortoiseGitMegar (28) 11、查看本地文件与基础文件的差异 (31) 12、查看别人的修改 (37) 13、查看文件的所有修改者 (40) 14、导出某一版本的文件 (41) 15、慎用Clean Up (44) 16、.gitignore和不需提交的文件 (45) 17、附:删除windows凭据 (46)

1、关于版本控制 版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会花时间作出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工作的团队 - 或许是同时工作在同一个文件!- 你就会明白为什么一个好的系统需要管理潜在的混乱。这是来自TortoiseSVN文档的一段话,总结得很精辟。 TortoiseGit 是一个 Windows 下的版本控制系统Git的客户端工具,正如其名字一样,小乌龟外面有一个壳,TortoiseGit也只是Git一个壳,使您更加方便的使用Git。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。版本库就像一个常见的文件服务器,除了它保存你对文件和目录所有的改变。这一特性使得你可以恢复文件的旧版本并查看历史-谁在什么时间如何进行的修改。因此也可以说版本控制系统是一种“时间机器”。 TortoiseGit现在有多语言包可以下载,本文档使用英文版进行说明。 本文档是以个人经验参考官方文档整理出来的,可能会存在很多问题,如有理解不正确的地方希望能够指出,大家共同学习吧。2、TortoiseGit安装: 首先安装git for windows,下载地址:https://git-for-windows.github.io/

相关文档
最新文档