Git命令学习Git使用习惯git-cheatsheet-中文注释
Git+使用教程
为了简明起见,我们创建两个文件作为练习:
$ echo "Hello world" > hello $ echo "Silly example" > example
我们再用 git-add 命令将这两个文件加入到版本库文件索引当中:
$ git-add hello example
Git 中文教程
● 创建一个属于自己的个人工作分支,以避免对主分支 master 造成太多的干扰,也方便与他人交流协 作。
● 当进行高风险的工作时,创建一个试验性的分支,扔掉一个烂摊子总比收拾一个烂摊子好得多。 ● 合并别人的工作的时候,最好是创建一个临时的分支,关于如何用临时分支合并别人的工作的技巧,
$ git-update-index --add hello example
如果你要将某个文件从 git 的目录跟踪系统中清除出去,同样可以用 git-update-index 命令。例如:
$ git-update-index --force-remove foo.c
Note git-add 可以将某个目录下的所有内容全都纳入内容跟踪之下,例如: git-add ./path/to/
/documents/gittutorcn.htm(第 5/23 页)2008-12-13 13:34:48
Git 中文教程
$ git-checkout robin $ echo "Work, work, workd" >> hello $ git-commit -m "Some workd" -i hello
$ git-checkout master $ echo "Play, play, play" >> hello $ echo "Lots of fun" >> example $ git-commit -m "Some fun" -i hello example
git使用培训
本地版本库与服务器版本库(二)
本地计算机 版本服务器 版本服务器
版本库
Version 3 Version 2 Version 1
①
git pull
版本库
Version 3 Version 2 Version 1
版本库
③
git push
Version n Version … Version 1
② git add、commit…
git checkout origin/master
推送数据给远程版本库
git push [remote repo name] [branch name]
将本地分支<branch name>推送给<remote repo name>的 <branch name>分支
git push
工作版本(Working copy):从档案库中取出 一个本地端的复制,所有在档案库中的档案更动, 都是从一个工作版本中修改而来的,这也是这名 称的由来。
•
GIT介绍
GIT设计目标
快速
高效 存储
满足大 规模项 目需要
简单
完全 分布
GIT工作模式
版本库初始化
个人计算机从版本服务器同步
版本服务器 版本库
本地计算机 本地计算机 版本服务器
版本库
Version m Version … Version 1
版本库
Version x Version … Version 1
版本库
Version x Version … Version 1
远程协作(二)
修改Readme.txt 使用git add命令添加Readme.txt 使用git commit提交Readme.txt 使用git pull获取服务器版本库更新 使用git push将Readme.txt保存至版本服务器
git message 语法
git message 语法全文共四篇示例,供读者参考第一篇示例:Git是目前最流行的分布式版本控制系统之一,为了更好的管理代码版本,保证团队协作的顺畅,Git 提供了强大的命令行工具和一套规范的语法。
在Git的使用过程中,git message 语法是至关重要的一部分,它主要用于规范提交信息的格式,方便他人阅读和理解代码变更的目的和内容。
下面我们将详细介绍Git message语法的规范和最佳实践。
### Git message 的基本格式Git message 通常分为三个部分:标题、内容和注释。
标题通常为单行文字,用于简洁明了地描述代码变更的目的,内容为多行文字,详细描述代码变更的具体内容,而注释则提供了更多的信息和上下文,比如相关的issue 编号、提交者信息等。
### 标题提交信息的标题应该简洁明了,一般不超过50 个字符。
标题的格式可以采用以下几种规范方式:- 动词开头:比如Add、Fix、Update、Remove 等- 使用第一人称:比如I add、I fix 等- 描述变更目的:比如Add feature A、Fix bug B 等### 内容提交信息的内容应该清晰详细,可以包含代码变更的原因、具体内容、影响范围等信息。
内容通常应该空一行,然后开始描述具体内容,每行文本应该不超过72 个字符,以便于在终端窗口中正确显示。
### 注释提交信息的注释是可选的,用于提供更多的信息和上下文。
注释通常应该以# 号开头,可以包含相关的issue 编号、提交者信息、参考文档等信息。
### 示例下面是一个符合Git message 语法规范的提交信息示例:```Add feature A- 在页面上添加了一个新的按钮- 修复了一个点击事件的bug- 关联了issue #123- 提交者:JohnSmith<****************>```### 最佳实践为了更好的遵守Git message语法规范,以下是一些最佳实践建议:- 提交信息应该清晰明了,描述变更的目的和内容- 标题应该简洁准确,不要包含无关内容- 内容应该详细全面,避免模棱两可的描述- 注释应该提供额外的信息和上下文,帮助他人理解代码变更的原因和环境Git message 语法的规范是为了更好地记录和管理代码变更历史,方便团队协作和版本控制。
常用 Git 命令清单 - 阮一峰的网络日志
三、增加/删除文件
# 添加指定文件到暂存区 $ git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 $ git add [dir] # 添加当前目录的所有文件到暂存区 $ git add . # 添加每个变化前,都会要求确认 # 对于同一个文件的多处变化,可以实现分次提交 $ git add ‐p # 删除工作区文件,并且将这次删除放入暂存区 $ git rm [file1] [file2] ... # 停止追踪指定文件,但该文件会保留在工作区 $ git rm ‐‐cached [file] # 改名文件,并且将这个改名放入暂存区 $ git mv [file‐original] [file‐renamed]
十、其他
# 生成一个可供发布的压缩包 $ git archive
一、新建代码库
# 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project‐name] # 下载一个项目和它的整个代码历史 $ git clone [url]
Байду номын сангаас
二、配置
Git的设置文件为 .gitconfig ,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。
常用 Git 命令清单
作者: 阮一峰 日期: 2015年12月 9日 我每天使用 Git ,但是很多命令记不住。 一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。
下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。
Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库
Git命令详解及常用命令整理
Git命令详解及常⽤命令整理Git 命令详解及常⽤命令Git作为常⽤的版本控制⼯具,多了解⼀些命令,将能省去很多时间,下⾯这张图是⽐较好的⼀张,贴出了看⼀下:关于git,⾸先需要了解⼏个名词,如下:Workspace //⼯作区Index / Stage //暂存区Repository //仓库区(或本地仓库)Remote //远程仓⼀、新建代码库// 在当前⽬录新建⼀个Git代码库$ git init// 新建⼀个⽬录,将其初始化为Git代码库$ git init [project-name]// 下载⼀个项⽬和它的整个代码历史$ git clone [url]⼆、配置Git的设置⽂件为.gitconfig,它可以在⽤户主⽬录下(全局配置),也可以在项⽬⽬录下(项⽬配置)。
// 显⽰当前的Git配置$ git config --list// 编辑Git配置⽂件$ git config -e [--global]// 设置提交代码时的⽤户信息$ git config [--global] "[name]"$ git config [--global] user.email "[email address]"三、增加/删除⽂件// 添加指定⽂件到暂存区$ git add [file1] [file2] ...// 添加指定⽬录到暂存区,包括⼦⽬录$ git add [dir]// 添加当前⽬录的所有⽂件到暂存区$ git add .// 添加每个变化前,都会要求确认// 对于同⼀个⽂件的多处变化,可以实现分次提交$ git add -p// 删除⼯作区⽂件,并且将这次删除放⼊暂存区$ git rm [file1] [file2]// 停⽌追踪指定⽂件,但该⽂件会保留在⼯作区$ git rm --cached [file]// 改名⽂件,并且将这个改名放⼊暂存区$ git mv [file-original] [file-renamed]四、代码提交// 提交暂存区到仓库区$ git commit -m [message]// 提交暂存区的指定⽂件到仓库区$ git commit [file1] [file2] ... -m [message]// 提交⼯作区⾃上次commit之后的变化,直接到仓库区$ git commit -a// 提交时显⽰所有diff信息$ git commit -v// 使⽤⼀次新的commit,替代上⼀次提交// 如果代码没有任何新变化,则⽤来改写上⼀次commit的提交信息$ git commit --amend -m [message]// 重做上⼀次commit,并包括指定⽂件的新变化$ git commit --amend [file1] [file2]五、分⽀// 列出所有本地分⽀$ git branch// 列出所有远程分⽀$ git branch -r// 列出所有本地分⽀和远程分⽀$ git branch -a// 新建⼀个分⽀,但依然停留在当前分⽀$ git branch [branch-name]// 新建⼀个分⽀,并切换到该分⽀$ git checkout -b [branch]// 新建⼀个分⽀,指向指定commit$ git branch [branch] [commit]// 新建⼀个分⽀,与指定的远程分⽀建⽴追踪关系$ git branch --track [branch] [remote-branch]// 切换到指定分⽀,并更新⼯作区$ git checkout [branch-name]// 切换到上⼀个分⽀$ git checkout -// 建⽴追踪关系,在现有分⽀与指定的远程分⽀之间$ git branch --set-upstream [branch] [remote-branch]// 合并指定分⽀到当前分⽀$ git merge [branch]// 选择⼀个commit,合并进当前分⽀$ git cherry-pick [commit]// 删除分⽀$ git branch -d [branch-name]// 删除远程分⽀$ git push origin --delete [branch-name]$ git branch -dr [remote/branch]六、标签// 列出所有tag$ git tag// 新建⼀个tag在当前commit$ git tag [tag]// 新建⼀个tag在指定commit$ git tag [tag] [commit]// 删除本地tag$ git tag -d [tag]// 删除远程tag$ git push origin :refs/tags/[tagName]// 查看tag信息$ git show [tag]// 提交指定tag$ git push [remote] [tag]// 提交所有tag$ git push [remote] --tags// 新建⼀个分⽀,指向某个tag$ git checkout -b [branch] [tag]七、查看信息// 显⽰有变更的⽂件$ git status// 显⽰当前分⽀的版本历史$ git log// 显⽰commit历史,以及每次commit发⽣变更的⽂件$ git log --stat// 搜索提交历史,根据关键词$ git log -S [keyword]// 显⽰某个commit之后的所有变动,每个commit占据⼀⾏$ git log [tag] HEAD --pretty=format:%s// 显⽰某个commit之后的所有变动,其"提交说明"必须符合搜索条件$ git log [tag] HEAD --grep feature// 显⽰某个⽂件的版本历史,包括⽂件改名$ git log --follow [file]$ git whatchanged [file]// 显⽰指定⽂件相关的每⼀次diff$ git log -p [file]// 显⽰过去5次提交$ git log -5 --pretty --oneline// 显⽰所有提交过的⽤户,按提交次数排序$ git shortlog -sn// 显⽰指定⽂件是什么⼈在什么时间修改过$ git blame [file]// 显⽰暂存区和⼯作区的差异$ git diff// 显⽰暂存区和上⼀个commit的差异$ git diff --cached [file]// 显⽰⼯作区与当前分⽀最新commit之间的差异$ git diff HEAD// 显⽰两次提交之间的差异$ git diff [first-branch]...[second-branch]// 显⽰今天你写了多少⾏代码$ git diff --shortstat "@{0 day ago}"// 显⽰某次提交的元数据和内容变化$ git show [commit]// 显⽰某次提交发⽣变化的⽂件$ git show --name-only [commit]// 显⽰某次提交时,某个⽂件的内容$ git show [commit]:[filename]// 显⽰当前分⽀的最近⼏次提交$ git reflog⼋、远程同步# 下载远程仓库的所有变动$ git fetch [remote]# 显⽰所有远程仓库$ git remote -v# 显⽰某个远程仓库的信息$ git remote show [remote]# 增加⼀个新的远程仓库,并命名$ git remote add [shortname] [url]# 取回远程仓库的变化,并与本地分⽀合并$ git pull [remote] [branch]# 上传本地指定分⽀到远程仓库$ git push [remote] [branch]# 强⾏推送当前分⽀到远程仓库,即使有冲突$ git push [remote] --force# 推送所有分⽀到远程仓库$ git push [remote] --all九、撤销// 恢复暂存区的指定⽂件到⼯作区$ git checkout [file]// 恢复某个commit的指定⽂件到暂存区和⼯作区$ git checkout [commit] [file]// 恢复暂存区的所有⽂件到⼯作区$ git checkout .// 重置暂存区的指定⽂件,与上⼀次commit保持⼀致,但⼯作区不变$ git reset [file]// 重置暂存区与⼯作区,与上⼀次commit保持⼀致$ git reset --hard// 重置当前分⽀的指针为指定commit,同时重置暂存区,但⼯作区不变$ git reset [commit]// 重置当前分⽀的HEAD为指定commit,同时重置暂存区和⼯作区,与指定commit⼀致$ git reset --hard [commit]// 重置当前HEAD为指定commit,但保持暂存区和⼯作区不变$ git reset --keep [commit]// 新建⼀个commit,⽤来撤销指定commit// 后者的所有变化都将被前者抵消,并且应⽤到当前分⽀$ git revert [commit]// 暂时将未提交的变化移除,稍后再移⼊$ git stash$ git stash pop⼗、其他// ⽣成⼀个可供发布的压缩包$ git archive感谢阅读,希望能帮助到⼤家,谢谢⼤家对本站的⽀持!。
Git学习文档
Git学习⽂档#########################################################Study Document for Git#########################################################Git 基础Git ⽂件的三种状态:已提交(committed)、已修改(modified)和已暂存(staged)。
Git ⼯作⽬录的状态:已跟踪和未跟踪。
已提交表⽰数据已经安全的保存在本地数据库中。
已修改表⽰修改了⽂件,但还没保存到数据库中。
已暂存表⽰对⼀个已修改⽂件的当前版本做了标记,使之包含在下次提交的快照中。
基本的 Git ⼯作流程如下:1. 在⼯作⽬录中修改⽂件。
2. 暂存⽂件,将⽂件的快照放⼊暂存区域。
3. 提交更新,找到暂存区域的⽂件,将快照永久性存储到 Git 仓库⽬录。
Git 语法设置 Git 的配置git config --listgit config --global ***git config --global user.email @.comgit helpgit help verbgit verb --help克隆远端仓库git clone url检查当前⽂件状态git status列出当前分⽀和⽂件的状态:已跟踪/未跟踪。
[***@*** deployment]$ git status# On branch master# Untracked files:# (use "git add <file>..." to include in what will be committed)## test.mdnothing added to commit but untracked files present (use "git add" to track)跟踪新⽂件git add file[***@*** deployment]$ git add test.md[***@*** deployment]$ git status# On branch master# Changes to be committed:# (use "git reset HEAD file..." to unstage)## new file: test.md#Changes to be committed: 已暂存状态。
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.pub2、gerrit注册使用1、申请账号通过邮件向PPCM@发邮件申请,打开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状态表示所有已经进入项目库的patch3、提交patch后,开发人员可能觉得不太满意会选择放弃,gerrit》ALL》Abandoned 即为已放弃的patch,只有还没有入库的patch才能选择放弃,点击进入patch,橘黄色Abandon即为放弃选项,放弃后的patch依然可以进行还原,如以下操作橘黄色Restore为还原选项4、gerrit》Projects》List状态表示服务器端所有项目列表5、gerrit》People》List Groups状态表示所有组列表2、评审功能1、点击进入待评审的patch,点击add添加Reviews人员进行评审评审人员点击Reply进行评审打分,每一个需要入库的patch必须具备两分+2方可,1分表示自己同意,2分表示完全同意,负分表示不支持此代码入库2、gerrit》My》Changes状态为需要自己给别人进行评审的状态4、git命令使用1、账户名和邮箱设置查看1)、每一个工作环境首先配置在gerrit中注册的账户名和邮箱,请确保一致# git config --global “your-account”# git config --global user.email “your-email”# git config -l2、项目库clone根据gerrit项目列表,查看项目下载地址,选择clone with commit-msg hook&&ssh 选项,请确保正确方式进行项目库下载git clone ssh://your-accout@192.168.31.10:29418/Test3、提交注意事项每一个新clone的库第一次提交都需要执行以下步骤(下载服务端钩子到本地库,以便提交评审形成chang-id)scp -p -P 29418 your-account-name @192.168.31.10:hooks/commit-msg .git/hooks/git config remote.origin.push refs/heads/*:refs/for/*当执行完以上步骤,第一次git push依然会产生missing Change-Id错误,用git commit --amend命令把错误信息中的changed id进行添加,如下图本地工作库中,以最后一次成功push为节点,如果超过两条commit信息也会产生此错误合并多条commit为一条记录,可以用git reset 后跟要回退到最新push成功的版本号,整合多条记录为一条如产生uppack error和changed closed,建议保存工作库中修改文件,并进行强制回退、重新同步最新代码,以修复工作库index。
git message 语法-概述说明以及解释
git message 语法-概述说明以及解释1.引言1.1 概述概述部分内容:引言部分将介绍本文的主题——"git message 语法"。
Git是一种分布式版本控制系统,它允许多人协同开发,并保留了每一个版本的更改记录。
在使用Git进行版本控制时,我们不仅需要关注代码的改动,还要注意良好的提交信息。
Git message(提交信息)是每次代码提交时,对所做更改的简短描述。
良好的Git message具有重要的意义。
首先,它可以使团队成员更清晰地了解自己以及他人所做的更改,避免项目中被遗忘的改动。
其次,良好的Git message可以提高代码的可读性,便于他人对代码进行理解和维护。
此外,当出现问题需要回溯历史版本时,清晰的Git message可以帮助我们快速定位出错地点和原因。
本文将介绍Git message的常用语法规则,包括合理的提交主题、提交内容的格式要求以及对应的时间戳格式等。
我们将详细探讨每个规则的用途和意义,并给出一些写好Git message的建议和提示。
通过学习和遵守这些语法规则,我们可以提高代码版本控制的效率和代码的可维护性。
总之,良好的Git message语法对于团队协作和项目的管理非常重要。
接下来的文章将深入探讨Git message语法规则以及其重要性,并为大家提供一些写好Git message的实用建议。
通过学习和遵循这些规则,我们可以提高我们的代码版本控制能力,提升团队合作效率和项目质量。
1.2 文章结构文章结构部分的内容如下:文章结构是指整篇文章的组织框架和布局,它决定了文章的逻辑顺序和信息的层次性。
一个合理的文章结构可以使读者更好地理解文章的内容,并能更快地获取所需信息。
通常,一篇文章的结构包括引言、正文和结论三个主要部分。
在引言部分,我们会对文章的主题进行概述,并介绍文章的目的和意义。
这部分内容的目的是引起读者的兴趣并让读者了解文章的背景信息。
Git的常用命令
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命令以及idea中git的用法总结
常⽤git命令以及idea中git的⽤法总结前⾔最近本⼈将⼀些代码放到了github上,顺便总结了⼀下git的⽤法;经过了各种百度,最终形成了以下这篇⽂章。
个⼈感觉追求效率的话,只看最后⼀条git常⽤命令即可。
前⾯的似乎有⽤,⼜似乎没⽤......Git使⽤⽅法简介Git 是⼀个开源的分布式版本控制系统,⽤于敏捷⾼效地处理任何或⼩或⼤的项⽬。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发⽽开发的⼀个开放源码的版本控制软件。
Git 与常⽤的版本控制⼯具 CVS, Subversion 等不同,它采⽤了分布式版本库的⽅式,不必服务器端软件⽀持。
安装Git⼯作流程⼀般⼯作流程如下:1.克隆 Git 资源作为⼯作⽬录。
2.在克隆的资源上添加或修改⽂件。
3.如果其他⼈修改了,你可以更新资源。
4.在提交前查看修改。
5.提交修改。
6.在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
下图展⽰了 Git 的⼯作流程:Git ⼯作区、暂存区和版本库⼯作区:就是你在电脑⾥能看到的⽬录。
暂存区:英⽂叫stage, 或index。
⼀般存放在 ".git⽬录下" 下的index⽂件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:⼯作区有⼀个隐藏⽬录.git,这个不算⼯作区,⽽是Git的版本库。
下⾯这个图展⽰了⼯作区、版本库中的暂存区和版本库之间的关系:图中左侧为⼯作区,右侧为版本库。
在版本库中标记为 "index" 的区域是暂存区(stage, index),标记为 "master" 的是 master 分⽀所代表的⽬录树。
图中我们可以看出此时 "HEAD" 实际是指向 master 分⽀的⼀个"游标"。
所以图⽰的命令中出现 HEAD 的地⽅可以⽤ master 来替换。
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 等,详情看作为开源自由原教旨主义项目,Git 没有对版本库的阅读和修改做任何的权限限制。
它只适用于 Linux / Unix 平台,没有 Windows 版本,目前也没有如此的开发打算。
本文将以 Git 官方文档,和作为蓝本翻译整理,可是临时去掉了对 Git 内部工作机制的论述,力求简明扼要,并加入了作者利用 Git 的进程中的一些心得体会,注意事项,和更多的例子。
建议你最好通过你所利用的 Unix / Linux 发行版的安装包来安装 Git, 你能够,也能够通过下面的命令来取得本文最新的版本库,而且通事后面的学习用 Git 作为工具参加到本文的创作中来。
$ git-clone 创建一个版本库:git-init-db创建一个 Git 版本库是很容易的,只要用命令git-init-db就能够够了。
Git使用详细教程.doc
Git使用详细教程1、git init命令用git init 在目录中创建新的Git 仓库。
你可以在任何时候、任何目录中这么做,完全是本地化的。
我们在电脑里能看到的刚才创建的目录就是工作区(Working Directory)在目录中执行git init,就可以创建一个Git 仓库了。
执行以后目录下生成.git的隐藏目录。
2、git隐藏目录非常重要,这个目录下包含了所有git 正常工作所需要的信息,如果你想从你的项目中删除git 但是又要保留项目文件,只需要删除.git 文件夹就可以了。
接下来我们详细说一下目录下的每个文件夹及文件:(1)打开HEAD文件我们会发现,这个文件里写了目前指向的master 分支。
如果我们看看refs/heads/master目录更加理解。
refs目录保存git不同分支的哈希码。
(2)我们先简单的理解一下objects目录。
每一次你创建一个文件并跟踪它会发现,git 会对其进行压缩然后以git 自己的数据结构形式来存储。
这个压缩的对象会有一个唯一的名字,即一个哈希值,这个值存放在object 目录下。
(3)git add命令git add 命令可将该文件添加到暂存区(index或Stage),暂存区是本地仓库和工作空间之间的过度存储空间。
我们先test目录下创建一个文件hello.txt存到暂存区(4)git commitgit commit将代码从缓存区保存至本地仓库,实际开发中一般使用`git commit -am "说明的文字"`,使用-a:如果没文件更改操作(增、删、改名)就可以省略git add指令;(5)git remote add originhttps:///wteam-xq/testGit.git`将本地仓库与指定的远程仓库创建联系;(6)`push -u origin master` 将本地仓库代码推送至远程仓库,实际开发中该指令后需要输入github 账号以及密码。
Git常用命令详解
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入门教程及使用步骤
git入门教程yangjian102621@一、名词解析1.git工作流工作目录 => 缓存区 => 最近提交2.分支分支是用来将特性开发绝缘开来的。
在你创建仓库的时候,master 是“默认的”。
在其他分支上进行开发,完成后再将它们合并到主分支上。
3.二、Git命令行操作●初始化一个git项目cd {project_name}git init●克隆项目git clone {project_url}●添加文件到版本控制git add {filename}git add --allgit add -A●删除文件git rm {filename}●查看当前文件状态git status●提交修改git commit -m “xxx”●推送改变git push {remote} {branch} ●标签git tag 1.0.0 1b2e1d63ff(唯一的提交ID)git push {remote} {tag_name}●添加分支git branch {branch_name}●删除分支git branch -d {branch_name}●切换分支git checkout {branch_name}●更新与合并git pullgit pull {remote} {branch}git merge {branch}●文件比较git diff {source_branch}{target_branch}●替换本地改动git checkout -- {filename}此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。
已添加到缓存区的改动,以及新文件,都不受影响。
假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:git fetch origingit reset --hard origin/master●查看日志git log三、TortoiseGit使用入门一、TortoiseGit安装和设置●安装msysgit,,一直使用默认的选项,知道安装完毕●安装TortoiseGit,先安装一直点下一步到安装完毕●安装TortoiseGit 语言包,,当然英语牛B的哥们这一步飘过●软件设置二、TortoiseGit使用右击任意文件夹,可以看到TortoiseGit已经嵌入右键了。
git常用命令总结
git常用命令总结Git 是一种分布式版本控制系统,广泛应用于软件开发中。
下面是一些 Git 的常用命令,用于管理代码版本、分支、合并等操作。
1. git init:初始化一个新的 Git 仓库。
在项目的根目录下执行该命令后,Git 会创建一个名为 .git 的隐藏文件夹,用于存储仓库中的各种版本、分支等信息。
2. git clone [url]:从远程仓库克隆一个完整的副本到本地。
url 是远程仓库的地址。
3. git add [file]:将文件添加到 Git 仓库的暂存区。
可以使用通配符 * 来添加多个文件。
4. git commit -m "message":将暂存区的文件提交到版本库,并添加一条提交消息。
提交消息对于其他开发者了解与追踪代码变更非常重要。
5. git status:查看当前工作区与暂存区的状态。
Git 会列出尚未暂存或提交的文件。
6. git diff:比较工作区与暂存区之间的差异。
可以查看具体哪些行被修改、删除或添加。
7. git log:查看提交历史记录。
Git 会列出每个提交的 SHA-1 标识符、作者、时间和提交消息。
8. git branch:列出所有分支。
当前分支会有一个星号标记(*)。
9. git checkout [branch]:切换到指定的分支。
branch 是分支的名称。
10. git merge [branch]:将指定分支合并到当前分支。
Git 会尝试自动合并代码,但有时候会发生冲突,需要手动解决。
11. git remote add [name] [url]:将远程仓库添加到本地。
name是远程仓库的别名,url 是远程仓库的地址。
12. git push [remote] [branch]:推送本地代码到远程仓库。
remote 是远程仓库的别名,branch 是要推送的分支。
13. git pull [remote] [branch]:从远程仓库拉取最新的代码,并合并到本地分支。
git的 用法 -回复
git的用法-回复Git的用法Git是一款分布式版本控制系统,用于管理文件和代码的版本。
它是由Linus Torvalds创建的,主要用于Linux内核的开发。
Git的设计目标是速度、简单性和数据完整性,并且可以处理任何大小的项目。
本文将一步一步介绍Git的基本用法,包括创建仓库、添加文件、提交更改、分支管理、合并代码以及远程仓库的使用。
1. 创建仓库首先,我们需要创建一个新的Git仓库来跟踪我们的项目。
在命令行中,进入项目所在的目录,并执行以下命令:git init这将在当前目录下创建一个名为`.git`的隐藏文件夹,用于跟踪项目的版本。
2. 添加文件接下来,我们需要将要跟踪的文件添加到Git仓库中。
使用以下命令添加一个或多个文件:git add [file]可以使用通配符`*`将所有文件添加到仓库中。
3. 提交更改当我们对文件进行了修改后,需要将修改提交到Git仓库中。
使用以下命令提交文件的更改:git commit -m "Commit message"其中,`-m`参数后面是本次提交的说明信息,可以根据需要进行修改。
每次提交都应该附带有描述性的信息,以方便日后浏览版本历史。
4. 分支管理Git的强大之处在于它支持并发的分支管理。
分支允许我们在开发过程中创建不同的线索,以便进行不同的实验或修复错误。
使用以下命令创建一个新的分支:git branch [branch_name]将`[branch_name]`替换为分支的名称。
然后,我们可以切换到新的分支:git checkout [branch_name]这将使我们在新的分支上进行操作。
5. 合并代码一旦我们在不同的分支上进行开发或实验,就可能需要将不同的分支代码合并到一起。
Git提供了简洁的命令来完成这项工作。
首先,切换到要合并到的目标分支:git checkout [target_branch]然后,使用以下命令将源分支合并到目标分支:git merge [source_branch]Git会自动尝试合并两个分支的代码,但如果存在冲突,需要手动解决冲突。
git常用命令使用及学习
git 常用命令安装步骤略1.设置邮箱用户a. git config --global user.email "my email"b. git config --global "my name"2.git init 把一个目录变成git可以管理的仓库,仓库里面存放你的项目文件3.git add <files> 新增或修改项目文件<files>多个文件可以空格隔开4.git commit -m "提交的内容说明" 提交更新。
修改已存在的文件提交保存,重复3-4步骤就行了5.git status 查看当前仓库下所有文件的状态,可查询哪些文件被修改过6.git diff 查看所有变更过的文件git diff <file>查看指定文件的变更内容7.git log 查看所有提交的日志记录,按时间倒序排列。
如果觉得现实内容过多,可使用git log --pretty=oneline查询,查询显示前面类似乱码的东西就是commit id8.git reset 版本回退到指定版本git reset --hard 'commit id' 或者git reset --hard head^回退上一个版本,git reset --hard head^^回退到上上一个版本,git reset --hard head~10回退到上10个版本9.git reflog 查看历史命令记录,主要可以找到以前的commit id10.git checkout -- <file> 直接丢弃工作区的修改11.git rm 删除指定文件。
git rm 文件夹名称-r递归删除指定文件夹下的所有内容12.git branch 查看分支信息,带*的为当前分支。
使用git switch -c '分支名称'或者git checkout -b '分支名称' 表示创建并切换分支。
gitte的使用
gitte的使用Git是一种分布式版本控制系统,适用于协作开发和版本管理。
而Gitte是一个基于Git的命令行工具,提供了一些简化操作和增强功能的命令。
在使用Gitte之前,你需要先安装Git,并配置好你的Git环境。
然后,你可以通过以下步骤来使用Gitte:1. 初始化Git仓库:进入你的项目目录,使用`git init`命令初始化一个空的Git仓库。
2. 添加文件到暂存区:使用`git add <file>`命令将文件添加到暂存区。
3. 提交文件到本地仓库:使用`git commit -m "<message>"`命令将暂存区的文件提交到本地仓库,其中`<message>`是提交时的说明。
4. 查看提交历史:使用`gitte log`命令查看当前分支的提交历史。
5. 创建分支:使用`gitte branch <branch>`命令创建一个新的分支,其中`<branch>`是分支名称。
6. 切换分支:使用`gitte checkout <branch>`命令切换到指定的分支,其中`<branch>`是分支名称。
7. 合并分支:使用`gitte merge <branch>`命令将指定分支的更改合并到当前分支。
8. 推送到远程仓库:使用`git push <remote> <branch>`命令将本地仓库的更改推送到远程仓库,其中`<remote>`是远程仓库的名称,`<branch>`是分支名称。
9. 拉取远程仓库的更改:使用`git pull <remote> <branch>`命令从远程仓库拉取最新的更改到本地仓库,其中`<remote>`是远程仓库的名称,`<branch>`是分支名称。
Git日常操作命令梳理
Git 日常操作命令梳理Git 日常操作命令梳理 /kevingrace/p/5690820.html在日常的Git 版本库管理工作中用到了很多操作命令,以下做一梳理: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 查看分支列表,带有*的分支表示是当前所在分支[root@115~~]#git branch查看分支详细情况 (推荐这种方式)[root@115~~]#git branch -av创建分支(比如devlop ):[root@115~~]#git branch devlop切换已有分支[root@115~~]#git checkout devlop创建并切换分支(比如opstest ):[root@115~~]#git checkout -b opstest将远程分支remotes/origin/testapp (比如通过git branch -av 发现的)拉到本地,创建别名testapp 并切换进去[root@115~~]#git checkout -b testapp remotes/origin/testapp (当前已经切换到testapp )删除分支(比如opstest )git branch -d devlop如果opstest 分支有新内容没有提交的话,这样删除会有提示: git branch -D opstest 进行强制删除------------------------------------------------------------------------------------------------------如果opstest 是当前所在分支,则删除不了!必须将其切换出去后才能删除在gerrit 界面上创建的分支,如下,直接删除是不行的!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [wangshibo@115~]$ git branch * master [wangshibo@115~]$ git branch -av * master 44f4b3a Add new file remotes/origin/HEAD -> origin/master remotes/origin/dev 44f4b3a Add new file remotes/origin/master 44f4b3a Add new file [wangshibo@115 ]$ git branch -d remotes/origin/dev error: branch 'remotes/origin/dev' not found. 正确删除方式是: 登陆gerrit 服务器,找到gerrit 安装目录的git/项目名称/refs/heads 下删除dev [gerrit@115]$ pwd /home/gerrit/gerrit_site/git/GItLearn.git/refs/heads [gerrit@115]$ ls dev [gerrit@115]$ ls dev [gerrit@115]$ rm -f dev [gerrit@115]$ ls [gerrit@115]$ 这样,就成功删除了gerrit 界面里创建的分支了!!------------------------------------------------------------------------------------------------------1 合并分支2345 比如将分支devlop 合并到master 分支下 注意:合并前要先切回到要并入的分支 [root@115~~]#git checkout master [root@115~~]#git marge devlop------------------------------------------------------------------------------------------------------合并的时候,有时候会出现冲突冲突的时候,git 会报出哪些文件冲突,这时候需要手动解决完冲突方可提交。
git使用操作说明书
Git安装1、在Linux上安装如果要在Linux上安装预编好的的Git二进制安装包,也可以直接用系统提供的包管理工具。
在Fedora上用yum安装:$yum install git-core在Ubuntu这里Debian体系的系统上,可以用apt-get安装:$apt-get install git2、在windows上安装在Windows上安装Git同样轻松,有个叫MsysGit的项目提供了安装包,在安装好后,会有一个TrotoiseGit的图形客户进行操作。
因为TrotoiseGit需要MsysGit进行软件支撑,所以需要安装MsysGit,现在就这两种安装进行说明。
在公司192.168.0.24共享文件里面下载好MsysGit的安装包,,点击安装后,一直按照软件安装的下一步进行安装,没有什么特别需要操作的。
在安装好MsysGit后,就可以安装TortoiseGit,根据自己系统选择安装32位或者64位的安装包。
在点击安装后,可以一直按照下一步进行,在进行到下图步骤是,请选择OpenSSH,再继续,其他就是一直是下一步。
注:TortoiseGit是支持中文包的,可以选择安装下中文安装包,再在TortoiseGit 里面设置下中文安装包。
设置如下,单击鼠标右键,选择TortoiseGit,点击Settings。
出现设置界面,如果安装了中文安装包,会出现选择中文(简体)的选择,选择中文,点击应用,确定就可以了。
3、在windows上Git的使用考虑到大家一般都是在windows系统上使用的比较多,主要是以介绍图形客户端TortoiseGit操作说明的,对于Git的命令操作也会在介绍TortoiseGit操作时写下了,功能是一样的。
3.1 Git在本地操作3.1.1 TortoiseGit的基本设置,需要到TortoiseGit的设置界面找到Git,点击下Git会出现以下界面,安装界面上的编辑用户信息,填写英文方式,填写分配的git账目名称,Email填写公司分配的邮箱。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
presented by TOWER ›Version control with Git - made easyGIT CHEAT SHEETCREATEClone an existing repository$ git clone ssh://user@/repo.gitCreate a new local repository$ git initLOCAL CHANGESChanged files in your working directory$ git statusChanges to tracked files$ git diffAdd all current changes to the next commit$ git add .Add some changes in <file> to the next commit$ git add -p <file>Commit all local changes in tracked files$ git commit -aCommit previously staged changes$ git commitChange the last commitDon‘t amend published commits!$ git commit --amend COMMIT HISTORYShow all commits, starting with newest$ git logShow changes over time for a specific file$ git log -p <file>Who changed what and when in <file>$ git blame <file>BRANCHES & TAGSList all existing branches$ git branch -avSwitch HEAD branch$ git checkout <branch>Create a new branch based on your current HEAD$ git branch <new-branch>Create a new tracking branch based ona remote branch$ git checkout --track <remote/bran-ch>Delete a local branch$ git branch -d <branch>Mark the current commit with a tag$ git tag <tag-name>UPDATE & PUBLISHList all currently configured remotes$ git remote -vShow information about a remote$ git remote show <remote>Add new remote repository, named <remote>$ git remote add <shortname> <url>Download all changes from <remote>,b ut don‘t integrate into HEAD $ git fetch <remote>Download changes and directlymerge/integratei nto HEAD $ git pull <remote> <branch>Publish local changes on a remote$ git push <remote> <branch>Delete a branch on the remote$ git branch -dr <remote/branch>Publish your tag s$ git push --tagsMERGE & REBASEMerge <branch> into your current HEAD$ git merge <branch>Rebase your current HEAD onto <branch>Don‘t rebase published commits!$ git rebase <branch>Abort a rebase$ git rebase --abortContinue a rebase after resolving conflicts$ git rebase --continueUse your configured merge tool to solve conflicts$ git mergetoolUse your editor to manually solve conflicts and (after resolving) mark file as resolved$ git add <resolved-file>$ git rm <resolved-file>UNDODiscard all local changes in your working directory$ git reset --hard HEADDiscard local changes in a specific file$ git checkout HEAD <file>Revert a commit (by producing a new commitwith contrary changes)$ git revert <commit>Reset your HEAD pointer to a previous commit …and discard all changes since then$ git reset --hard <commit>…and preserve all changes as unstagedchanges$ git reset <commit>…and preserve uncommitted local changes$ git reset --keep <commit>对于某个文件的修改:时间、地点、人物某个文件的最近一次修改stage所有修改,注意点号其实可用reflog找到并恢复该版本。
把和上个commit之间的修改放回工作区。
跳过git add,不建议修补,而不是revert常用 git commit --amend --no-editBEST PRACTICESVERSION CONTROLCOMMIT RELATED CHANGESA commit should be a wrapper for related changes. For example, fixing two different bugs should produce two separate commits. Small commits make it easier for other de-velopers to understand the changes and roll them back if something went wrong.With tools like the staging area and the abi-lity to stage only parts of a file, Git makes it easy to create very granular commits.COMMIT OFTENCommitting often keeps your commits small and, again, helps you commit only related changes. Moreover, it allows you to share your code more frequently with others. That way it‘s easier for everyone to integrate changes regularly and avoid having merge conflicts. Having few large commits and sharing them rarely, in contrast, makes it hard to solve conflicts.DON‘T COMMIT HALF-DONE WORKYou should only commit code when it‘s completed. This doesn‘t mean you have to complete a whole, large feature before committing. Quite the contrary: split the feature‘s implementation into logical chunks and remember to commit early and often. But don‘t commit just to have something in the repository before leaving the office at the end of the day. If you‘re tempted to commit just because you need a clean working copy (to check out a branch, pull in changes, etc.) consider using Git‘s «Stash» feature instead.TEST CODE BEFORE YOU COMMITResist the temptation to commit some-thing that you «think» is completed. Test it thoroughly to make sure it really is completed and has no side effects (as far as one can tell). While committing half-baked things in your local repository only requires you to forgive yourself, having your code tested is even more important when it comes to pushing/sharing your code with others.WRITE GOOD COMMIT MESSAGESBegin your message with a short summary of your changes (up to 50 characters as a gui-deline). Separate it from the following body by including a blank line. The body of your message should provide detailed answers to the following questions:› W hat was the motivation for the change? › H ow does it differ from the previousimplementation?Use the imperative, present tense («change»,not «changed» or «changes») to be consistent with generated messages from commandslike git merge.VERSION CONTROL IS NOT A BACKUP SYSTEMHaving your files backed up on a remoteserver is a nice side effect of having a version control system. But you should not use your VCS like it was a backup system. When doing version control, you should pay attention to committing semantically (see «related chan-ges») - you shouldn‘t just cram in files.USE BRANCHESBranching is one of Git‘s most powerful features - and this is not by accident: quick and easy branching was a central requirement from day one. Branches are the perfect tool to help you avoid mixing up different lines of development. You should use branches extensively in your development workflows: for new features, bug fixes, ideas…AGREE ON A WORKFLOWGit lets you pick from a lot of different work-flows: long-running branches, topic bran-ches, merge or rebase, git-flow… Which oneyou choose depends on a couple of factors: your project, your overall development and deployment workflows and (maybe most importantly) on your and your teammates‘ personal preferences. However you choose to work, just make sure to agree on a common workflow that everyone follows.HELP & DOCUMENTATIONGet help on the command line$ git help <command>FREE ONLINE RESOURCES /learn http://rogerdudler.github.io/git-guide//经常commit,小而多的commit“颗粒化”#不同的修改,使用不同的commit #同一修改,即使涉及不同的文件, 也要放在同一个commit 一些常用的习惯修改完全再commit,修改一半可以stash commit之前测试是或否行得通commit要-m注释,注意格式。