git学习笔记
git笔记
git笔记前言Git 确实是很好的版本管理系统。
有关其优点这里暂时不说了,网上也有很多相关资料介绍。
把这些记录下来方便以后查阅理解。
∙一些好的Git学习资源∙Git分支管理策略∙Pro Git books∙Git交互学习∙专为设计师而写的GitHub快速入门教程∙GotGitHub以下记录一些简单笔记,以便日后查阅,当然要想系统的学习下Git原理可以参考上面列出的学习资源关于安装请移步Git安装当然最好能在Linux下。
创建版本库∙通过git init命令将你要所在的当前目录变成Git可以管理的仓库;在当前目录下你能看到.git目录∙一般你要将新写好的文件要加入该仓库管理时,用命令git add youfile ∙将上面加入仓库的文件提交到仓库,用命令git commit -m "your annotation information";注意:-m 参数后面记得填写你修改的注释说明,方便别的开发者能阅读。
∙git status命令可以随时查看仓库当前的状态,如有哪些文件更改了,哪些已经提交,哪些文件没有跟踪.操作远程仓库一般可以自己搭建一个自己运行的Git服务器。
如果没条件,就用Github网站吧,一个提供仓库托管服务的网站,这里你可以将Github理解为Git服务器,但是它不免费提供私有的仓库。
所以,要是你的项目不公开的话,要么交点费用,要么自己搭建个Git服务器。
不多说∙首先在上面注册个账号,我的账号∙然后你“Create a new repo”创建一个新的仓库(我的新仓库COS-IIAPP),按照默认情况设置就可以了。
∙关联你的本地仓库。
注意:最好本地仓库名字与你在Github上面新建立的仓库名字一样。
在本地仓库所在目录下运行命令:1.$ git remote add origin git@:yourcount/hello-world.git其中origin即为远程库∙将本地库的所有内容推送远程库1.$ git push -u origin master当然,如果你在本地创建了其他分支(不知道什么是分支?别急,要不你先看我后面介绍的分支吧),也可以推送,将master改为你要推送的分支名称即可。
Git学习笔记
本节先简单介绍Git的使用与操作, 然后再介绍TortoiseGit 的使用与操作.Git是SVN以后的新一代的版本控制系统/协议. 适合于大规模的开源软件多人协作的开发. 有一个总仓库(如GitHub,CSDN,OSchina等提供), 每个客户端都有一个本地仓库(这个本地仓库有点对应于SVN的服务端仓库), 以及一个可以看见的本地项目.让我们想想,至少需要有哪些功能.以GitHub为例,首先,必须得有一个线上仓库(Repository), 这首先得新建一个仓库.要创建仓库,必须得先注册账号. 请参考: 创建GitHub技术博客全攻略:/renfufei/article/details/37725057然后,登录GitHub, 在右上角找到New Repository 或者加号下拉按钮(+),点击进入新建仓库页面: https:///new, 如下图所示:依次填写仓库名,以及其他信息后,点击"Create repository" 按钮,即可创建一个在线仓库. 因为这个仓库是挂在你的账号下的,所以可以是任意合法的字符,只要和你的其他仓库不冲突即可.仓库创建成功后,就会进入仓库预览页面, 如下图所示:然后,我们可以点击右边的HTTPS 链接, 上方的文本框里面就显示了HTTPS 协议下的仓库访问地址, 可以点进去,全选,也可以点击右边的复制按钮复制到剪贴板. 例如,刚刚创建的项目访问路径是:https:///cncounter/LispGentleIntro.git是一个以https:// 开始,以 .git 结尾的URL,根据提示,叫做clone URL.好了,仓库创建完成,可以进入下一步了.如果你偏爱命令行,那么可以简单参考下这一小节. 否则,请往下翻,直接看TortoiseGit使用与操作2.1 克隆项目(clone ...)Win+R 快捷键打开运行对话框,输入cmd回车, 在cmd 中(其实在GitBash中也可以), cd 切换到存放git项目的目录, 如:[plain]view plain copy1.Microsoft Windows [版本 6.1.7601]2.版权所有 (c) 2009 Microsoft Corporation。
GIT学习笔记
1.GIT内部只有3种状态:已提交(committed),已修改(modified)和已暂存(staged)。
2.GIT的文件状态变化周期3.基本的GIT工作流程:1). 在工作目录中修改某些文件。
2). 对修改后的文件进行快照,然后保存到暂存区域。
3). 提交更新,将保存在暂存区域的文件快照永久转储到Git 目录中。
4.常用命令:*查看状态:git status*跟踪新文件、暂存已修改文件:git add filename | git add .*提交暂存区更新:git commit | git commit –m “message about commit”*提交已跟踪文件:git commit –a | git commit –am “message about commit”修改最后一次提交:git commit --amend获取项目:git clone git:///schacon/simplegit-progit.git比较未暂存文件修改:git diff filename | git diff比较已暂存文件修改:git diff --cached filename | git diff –cached移除文件:git rm filenamegit rm同时也可以使用glob模式,如:git rm log/\*.loggit rm \*~等移动文件:git mv filename1 filename2查看提交历史:git loggit log常用选项:-p 选项展开显示每次提交的内容差异; -2仅显示最近的两次更新; --stat仅显示简要的增改行数统计; --pretty使用指定格式显示log取消已经暂存文件:git reset HEAD filename取消对文件的修改:git checkout filename查看当前远程仓库:git remote|git remote -v添加远程仓库:git remote add [shortname] [url]从远程仓库抓取数据:git fetch [remote-name]推送数据到远程仓库- git push [remote-name] [branch-name]查看远程仓库信息-git remote show [remote-name]远程仓库重命名:git remote renameremote-name new-name远程仓库删除:git remote rm remote-name标签相关:git tag|git tag –a tag-name –m “message”| git push origin[tagname]查看提交内容:git show SHA值5.忽略某些文件:编辑.gitignore文件,可以使用glob模式。
git 读书笔记
硬重置 :git reset --hard 提交的版本/HEAD^ 几级就多少个 这个方法会丢失历史信息
12: 查看分支日志功能是否开启 git config core.logallrefupdates
查看最近的几条提交记录通过文件 $ tail -5 .git/logs/refs/heads/master
22。获取某个文件的历史版本
$ git log --pretty=oneline pom.xml
$ git reset 版本号 文件名
查看操作记录 $ git reflog show master | head -5
切换版本$ git reset --hard master@{2}
--soft 替换引用 引用只想新的Id ,暂存区和工作区不发生变化
--mixed 替换引用 引用只想新的Id ,替换暂存区,可以完成 回复将文件退出提交的操作 默认便是该选项
git log --pretty=raw --graph 提交ID
10: 获取HEAD的集中方式 1.git log -l HEAD 2.git log -l master 3. git log -l refs/heads/master
查看当前库里面某个文件的内容 git cat-file blob 提交版本号:文件名 加上 |wc -c
git cat-file -p HEAD^:filename 查看指定文件的内容
git add -u 提交所有在版本库中改动的文件
16 恢复文件
git cat-file -p HEAD~1:filename > filename 单个恢复误删的文件
git show HEAD`1:filename>filename 单个恢复误删的文件
git笔记
1.repository 仓库,版本库2.$ git config --global "Your Name"$ git config --global user.email "email@"3.mkdir 创建一个版本库cd 跳转文件夹pwd 显示当前目录git init 把这个目录初始化成Git可以管理的仓库ls -ah 显示看不见的目录3.$ git add file1.txt$ git add file2.txt file3.txt$ git commit -m "add 3 files."为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件4.git status命令可以让我们时刻掌握仓库当前的状态5.提交修改和提交新文件是一样的两步,第一步是git add,第二步git commit6.如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
7.git log命令显示从最近到最远的提交日志8.Git log --pretty=oneline9.Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100$ git reset --hard HEAD^10.Git提供了一个命令git reflog用来记录你的每一次命令11.git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别12.命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:13.14.一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;15.16.一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
Git学习笔记之(一)使用gitgui从github上下载代码
Git学习笔记之(⼀)使⽤gitgui从github上下载代码背景:⽬前⼀些开源代码均在 GitHub上管理的,包括⾃⼰写的代码也可以放在上⾯进⾏管理。
但问题是,当你换⼀台电脑,想要将你⾃⼰放在GitHub 上的代码⼯程下载下来的时候,会遇到各种问题,⽬前可以使⽤4种⼯具下载代码,可以使⽤两种不同的⽅式。
内容:1、使⽤ Git Gui 下载代码在官⽹下载 TortoiseGit 和 Git GUI for windows ,下载完成之后,进⾏安装。
图⼀在设定为 git 的⽬录中右键,打开 Git GUI 软件图⼆图三使⽤账号打开GitHub,同时打开⾃⼰的⼯程,在Clone or download 下拉之后,选择 use SSH,拷贝输⼊框中的内容到 Git GUI 界⾯中。
图四此时点击 Clone,会提⽰如下内容:此时应该是SSH-key没有⽣成,需要到 GitHub 上,打开settings ---> SSH and GPG keys ---> 点击右侧的 generating SSH keys,查看官⽅的介绍,如何⽣成SSH key。
⼤致步骤如下:(1) ⾸先检查服务器上否已经安装了 SSH key。
打开 Git Bash执⾏ ls -al ~/.ssh 命令,如下图可以看到以下列出了含有 SSH key的地⽅。
当列表⾥⾯没有数据的时候,此时需要⽣成⼀个新的 SSH key,并添加到 ssh-agent (见操作4)和 Git Hub(见操作3)中。
(2) ⽣成新的 SSH key打开 Git bash ⼯具执⾏ ssh-keygen -t rsa -b 4096 -C "your email@"(3) 将 SSH key添加到 GitHub上直接打开 id_rsa.pub⽂件;将其中的内容拷贝到 GitHub上(setting----> SSH and GPG keys )选择 New SSH key。
git的使用学习
git的使用学习git loggit addgit statusgit pullgit pushgit diff test1.txtgit reset --hard HEAD^回退到上一个版本git reset --hard HEAD^^git reset --hard HEAD~100回退到前100个版本恢复到新的版本git refloggit reset --hard debc1e1 恢复到制定的版本号理解工作区与暂存区的区别?工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git 隐藏目录版本库除外)。
或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。
其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。
我们前面说过使用Git提交文件到版本库有两步:第一步:是使用git add 把文件添加进去,实际上就是把文件添加到暂存区。
第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。
git checkout -- readme.txtgit clone--创建分支git checkout -b创建并切换git branch查看分支总结创建与合并分支命令如下:查看分支:git branch创建分支:git branch name切换分支:git checkout name创建+切换分支:git checkout –b name合并某分支到当前分支:git merge name删除分支:git branch –d nametortoiseGitSmartGitSourceTreeGit GUI如果经常跨平台工作的话,可以使用SourceTree 或者SmartGit,都是不错的。
git学习心得
git学习心得Git作为目前最流行的分布式版本控制系统,对于软件开发者而言具有极大的重要性。
通过学习和使用Git,我深刻了解到其在团队协作、代码管理和版本控制等方面的优势。
下面我将分享我在学习Git过程中的心得体会。
一、Git的基本概念及工作原理Git采用分布式的版本控制方式,它通过在本地生成一个完整的代码仓库来管理代码。
学习Git要先了解几个基本概念,如仓库(Repository)、分支(Branch)、提交(Commit)、合并(Merge)等。
在Git中,每个本地仓库都包含了完整的项目历史记录,并且每个开发者都可以独立地进行工作,从而提高了团队协作效率。
Git的工作原理主要分为工作区、暂存区和代码仓库三个部分。
工作区是指我们实际编辑代码的目录,暂存区用于存放将要提交的更改,代码仓库则是存放代码的版本历史记录。
通过学习这些基本概念和工作原理,我对Git有了更深刻的认识。
二、Git的优势及应用场景Git相较于其他版本控制系统具有许多优势,这也是我选择学习Git的原因之一。
首先,Git具有很好的分支管理能力。
分支在Git中非常灵活,开发者可以随时创建、切换、合并和删除分支。
这对于团队协作非常重要,可以让开发者在不影响主分支的情况下进行独立的开发工作。
其次,Git具有快速高效的代码提交和版本回滚功能。
通过Git的提交机制,开发者可以方便地将修改的代码保存到本地仓库,并随时回滚到历史某个版本。
这对于代码的管理和维护非常有帮助,同时也减少了出错的概率。
此外,Git还具备可视化的操作界面和丰富的命令行工具。
这使得我们可以根据自己的喜好选择适合自己的操作方式。
三、Git的学习方法与技巧学习Git需要不断的实践和探索,以下是我总结的一些学习方法和技巧:1. 官方文档和教程是学习的重要资源。
Git官方提供了详尽的文档和教程,这是学习Git的首要参考资料。
通过阅读文档和进行实践操作,可以更好地理解Git的核心概念和基本操作。
git学习心得
git学习心得《git 学习心得》在当今的软件开发领域,版本控制系统是不可或缺的工具。
Git 作为其中的佼佼者,为开发者们提供了强大而灵活的版本管理能力。
在学习和使用 Git 的过程中,我收获了许多宝贵的经验和体会。
Git 给我的第一印象就是它的分布式特性。
与传统的集中式版本控制系统不同,Git 允许每个开发者都拥有完整的代码库副本。
这意味着即使在没有网络连接的情况下,我们也可以进行本地的提交、修改和查看历史记录。
这种分布式的架构为开发者提供了极大的灵活性和自主性。
不必担心因为服务器故障或者网络问题而导致无法工作,这让开发过程变得更加流畅和高效。
在学习 Git 的基本命令时,我发现掌握`git init` 、`git add` 、`git commit` 这几个核心命令是至关重要的。
`git init` 用于初始化一个新的 Git 仓库,为项目的版本管理打下基础。
`git add` 则将我们想要跟踪的文件添加到暂存区,准备进行提交。
而`git commit` 则真正地将暂存区的修改创建一个新的提交,形成版本历史中的一个节点。
通过不断地实践和使用这些命令,我逐渐熟悉了如何将代码的变更有效地纳入版本控制之中。
分支管理是Git 的一大特色。
通过`git branch` 命令创建新的分支,我们可以在不影响主分支的情况下进行新功能的开发、修复 bug 等工作。
这使得团队能够并行地进行多个任务,而不会相互干扰。
而且,使用`git merge` 命令将分支合并回主分支时,Git 能够很好地处理可能出现的冲突。
这需要我们仔细地检查和解决冲突,以确保合并后的代码是正确和完整的。
在团队协作中,Git 的远程仓库功能发挥了重要作用。
通过`git remote add` 命令添加远程仓库地址,我们可以将本地的修改推送到远程仓库,与团队成员共享代码。
同时,使用`git pull` 命令从远程仓库获取最新的代码,保持本地代码与团队的同步。
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 '分支名称' 表示创建并切换分支。
Git学习笔记之(二)Gitbash命令介绍
Git学习笔记之(⼆)Gitbash命令介绍打开 git bash 界⾯,在该界⾯进⾏命令操作。
在你的本地⼯程根⽬录下右键打开 git bash 命令⼯具。
1、git -- help输出命令该命令,回车,可以看到所有git 命令,其也介绍了对应⽤法。
2、git log可以查看该⼯程最新提交的记录。
3、 git diff可以查看本地该⼯程与github该⼯程之间的差异性红⾊表⽰冲突点。
绿⾊表⽰表⽰新增点。
4、git commit(1) 初次提交某个⽂件⾄远程仓库(这⾥均是指同步⾄ GitHub上,以修改了根⽬录下的pom.xml为例)。
a) git commit -i pom.xml -m "修改pom中的依赖数据"该命令表⽰将 pom.xml 提交到本地仓库中,提交的 message为 "修改pom中的依赖数据",其中 -m "message",这个在提交的时候必须写的。
-i xxxx 表⽰提交某个⽂件。
此时回车,出现了如下情况:提⽰需要配置提交账号。
b) git config --gobal "accountname"该命令表⽰配置git的账号名;c) git config --gobal user.email "accoutemail"该命令表⽰配置git的邮箱;d) git commit --amend --reset-author该命令表⽰重置⽤户信息在输⼊ d) 的命令之后,直接进⼊了编辑器⾥⾯,在该编辑器⾥⾯会提⽰本次要提交什么样的内容,同时要求输⼊提交的message。
此时直接输⼊message,之后按 esc 键退出输⼊状态,并按ZZ 返回命令⾏。
命令⾏呈现如下状态;e) git push origin 分⽀名该命令表⽰提交到远程仓库中(2) 本次修改的内容同步⾄远程仓库本地有新增⽂件,需上传⾄远程仓库,先执⾏如下命令:git add ⽂件若是在⼯程⽬录下启动 git bash⼯具的话,这⾥的⽂件填写的路径为相对⼯程⽬录的路径;可以填写多个⽤空格隔开,如:git add 1.txt 2.txtgit commit -i ⽂件 -m "备注"将⽂件提交到本地仓库中, -i 命令表⽰特定的⼏个⽂件,多个⽂件⽤空格隔开,如: git commit -i 1.txt 2.txt -m "提交修改的⽂件"git push 远程服务器分⽀名称将修改的⽂件提交到远程服务器,如: git push origin master 将变更的内容提交到 git 上的主⼲上5、以下是从⽹上找到的命令还未经验证,并实际操作理解⽤途git Bash here从远程仓库更新代码到本地以及上传代码到远程仓库第⼀步:创建分⽀⾸先先在云平台或者github上⾯创建⼀个你的分⽀,⽐如叫做dev-ts-whitelist,第⼀次平台会⾃动帮你从master(主⼲)⾥⾯把代码同步到dev-ts-whitelist分⽀⾥⾯。
git学习心得
git学习心得Git is a distributed version control system that allows developers to efficiently manage and collaborate on projects. In my experience, learning Git has been instrumental in improving my programming skills and streamlining my workflow. In this article, I will share my insights and lessons learned from studying Git.1. Understanding the BasicsBefore delving into the more advanced features of Git, it is crucial to grasp the fundamental concepts. Git operates by creating snapshots of a project's entire codebase at different points in time, allowing for easy tracking of changes. It also has a distributed architecture, meaning that multiple developers can work on the same project independently and then merge their changes seamlessly.2. Setting Up GitTo start using Git, you need to install it on your local machine. Once installed, you should configure your Git username and email, which will be associated with your commits. This information is essential for tracking and attributing code changes accurately. Additionally, it is highly recommended to initialize a Git repository for each new project to enable version control.3. Git WorkflowGit follows a branching model that allows developers to work on different features or bug fixes simultaneously. The main branch, typically named "master" or "main," represents the stable version of the project.Developers create new branches from the main branch, make changes, and merge them back into the main branch once they are complete. This workflow ensures that changes are thoroughly tested before being integrated into the main codebase.4. Committing and BranchingThe core of Git revolves around committing changes and creating branches. Commits are snapshots of the project's state at a specific point in time. By creating descriptive and concise commit messages, you can easily track the purpose and details of each commit. Branches, on the other hand, are created to work on new features or bug fixes independently. Regularly committing changes and creating branches helps maintain a clear and organized project history.5. Collaboration with GitGit greatly facilitates collaboration among developers. It allows multiple team members to work on the same project simultaneously without conflicts. Through tools like GitHub or GitLab, developers can push their local repos to a remote server and merge their changes. Features such as pull requests enable code review and ensure that changes are thoroughly examined before being merged into the main branch. Collaboration using Git fosters teamwork and enhances overall project quality.6. Resolving Merge ConflictsAt times, when merging branches or applying changes, conflicts may arise. Merge conflicts occur when Git cannot automatically merge the changes due to conflicting modifications in the same code lines. Resolvingthese conflicts requires carefully reviewing the conflicting sections, identifying the differences, and manually choosing the correct version. Although merge conflicts can be challenging, Git provides powerful tools to help resolve them effectively.7. Branch ManagementMaintaining a well-organized branch structure is crucial for a smooth workflow. Over time, a project may accumulate numerous branches, making it difficult to keep track. Deleting merged branches and using meaningful and consistent naming conventions for branches are essential practices in branch management. Additionally, utilizing tags to mark important milestones or releases simplifies navigation within the repository.8. Git CommandsGit offers a wide range of commands that can be used to perform various operations. While it is not necessary to memorize every command, understanding commonly used ones is beneficial. Some essential commands include git clone for cloning a repository, git add for staging changes, git commit for creating commits, git push for pushing changes to a remote repository, and git pull for syncing a local repo with the remote one.In conclusion, learning Git has been a transformative experience for me as a developer. Its powerful version control capabilities, collaborative features, and efficient workflow management have significantly improved my productivity and code quality. By understanding the basics, following best practices, and utilizing Git commands effectively, developers can harness the full potential of Git and take their projects to new heights.。
git学习文档
Git学习文档1.创建版本库初始化一个Git仓库,使用gitinit命令。
添加文件到Git仓库,分两步:∙第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;∙第二步,使用命令git commit,完成。
2.时光穿梭机∙要随时掌握工作区的状态,使用git status命令。
∙如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
3.版本回退∙HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
∙穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
∙要重返未来,用gitreflog查看命令历史,以便确定要回到未来的哪个版本。
4.工作区和暂存区∙前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:∙第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;∙第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
∙因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
∙你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
5.管理修改Git是如何跟踪修改的,每次修改,如果不add到暂存区,那就不会加入到commit中。
6.撤销修改场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
git学习笔记
git学习笔记Git当前最流行的分布式版本控制系统,它可以让你跟踪文件的不同版本,提供非常强大的代码管理。
Git允许多个开发者维护同一项目的不同版本,使其能够与他们的团队合作时保持同步。
本文将介绍Git的基本概念,工作原理及其主要功能,以及实践Git何用于管理项目的版本。
1、Git简介Git一种分布式的版本控制系统,它允许开发者以不同的节点或“仓库”(repository)存储和管理文件的状态,以及每次更改以及如何运行它们之间的关系。
Git以记录代码在一段时间内的变化,并对其进行分类和分析,以确保高质量的可用性。
Git 也可以支持多人协作:不同的开发者可以与仓库共享他们自己的更改,而总体的代码状态保持同步。
其中,GitHub一个特殊的服务,将版本控制系统和代码存储服务结合在一起,是一种非常流行的为项目提供版本控制的平台。
2、Git工作原理Git用了两个核心部分保持其功能:仓库和提交。
仓库是一种存储文件版本的方式,它按照文件及其各个版本在特定时期之间的状态进行分级。
另一方面,提交是创建完整的更改集合的操作,提交由作者的名字,作者的邮件地址,提交的日期和提交注释组成。
使用Git时,开发者和团队可以结合工作仓库和提交概念来跟踪文件的更改,确保所有成员的文件保持同步,并且将新的更改都合并到共同的仓库中。
这种闭环的逻辑使Git成为管理复杂项目所非常有效的工具。
3、Git主要功能Git 不仅提供仓库和提交功能,还提供了很多额外的功能。
例如,开发者可以使用Git分支(branches)来在特定仓库条目树上采用不同的操作,以及将其合并到一起。
与分支相关的概念还包括标签(tags),它们允许开发者将特定的提交标记为里程碑版本,以便之后查看。
另外,Git还支持变基(rebasing)操作,允许开发者更改仓库的提交历史,或者移除特定的提交,以确保提交的历史是一致的,清晰的。
4、实践Git当一个团队或组织使用Git管理其项目时,最常采用的模型是将仓库放在一个单独的中央服务器上,所有团队成员都可以读取和写入它。
git知识点总结
git知识点总结Git 是一个分布式版本控制系统,广泛应用于软件开发领域。
Git 的使用对于团队协作和代码管理非常重要,因此掌握 Git 的知识是每个开发者都应该具备的基本技能之一。
本文将对 Git 的一些重要知识点进行总结,希望能帮助读者更好地了解和应用 Git。
一、Git 的基本概念1. 版本控制系统版本控制系统是一种管理文件变更的系统,可以追踪文件的修改历史,比较不同版本之间的差异,并且能够恢复到任意一个历史版本。
Git 是一种分布式版本控制系统,可以在本地进行版本控制操作,并且可以和远程仓库进行同步。
2. 仓库(Repository)Git 的仓库是用来存储项目文件的地方,包含了项目文件的所有版本历史记录。
每个项目都有一个对应的仓库,可以在本地或者远程进行操作。
3. 提交(Commit)提交是指将文件或者目录的修改保存到仓库中,每次提交都会生成一个新的版本,可以通过提交记录查看文件的修改历史。
4. 分支(Branch)分支是用来实现并行开发和管理代码的机制,可以将代码的修改记录独立保存在不同的分支上,然后再合并到主分支上。
5. 合并(Merge)合并是指将一个分支上的修改合并到另一个分支上,可以将不同分支的代码合并在一起。
6. 远程仓库(Remote Repository)远程仓库是指存放在网络服务器上的代码仓库,可以用来和团队成员共享代码并进行协作开发。
7. 拉取(Pull)拉取是指将远程仓库的代码同步到本地仓库中,可以更新本地仓库的代码。
8. 推送(Push)推送是指将本地仓库的代码同步到远程仓库中,可以将本地修改的代码上传到远程仓库。
二、Git 的基本操作1. 初始化仓库要使用 Git 进行版本控制,首先需要在项目目录下初始化一个 Git 仓库,可以通过执行 git init 命令来初始化仓库。
2. 添加文件在 Git 仓库中,需要将文件添加到版本控制中才能进行管理,可以通过 git add 命令将文件添加到暂存区。
git学习笔记
git学习笔记
Git — The stupid content tracker。
用途:版本控制
流程:取代码 → 每次工作前更新代码到最新版本 → 修改代码 → 提交代码到服务器
git下载地址:/download (有win、linux、mac对应版本)
一、git设置
设置用户名与邮箱git config --global "My Name"git config --global user.email "my@"
上面设置指令中带了–global"参数,是全局配置,影响本机上全部的git项目。
也可以对一些单独的项目举行设置,进入要设置的项目名目,举行设置:
cd dirgit config "My Name"git config user.email "my@"
查看配置:
cat .git/config
二、创建git仓库及操作
创建git仓库:
第1页共7页。
使用Git管理源代码的基础知识
使用Git管理源代码的基础知识在软件开发中,代码管理是一个非常重要的环节,而Git作为目前最流行的代码管理工具,扮演着不可替代的角色。
在本文中,我将介绍一些基本的Git知识。
一、Git的基本概念Git是一个分布式的版本控制系统,它将文件的修改记录在一个称为“仓库”的数据库中。
使用Git管理代码会涉及到以下几个概念:1. 仓库:Git管理的代码保存在一个称为仓库的目录中,一个仓库可以包含多个分支。
2. 分支:Git中的分支是指一个独立的代码流,不同的分支可以同时开发不同的功能。
3. 提交:每当我们对代码进行修改之后,都可以通过提交来保存这些变化。
4. 合并:当代码的两个分支合并时,会将它们的代码合并为一个新的分支。
5. 冲突:当代码合并时,如果两个分支修改了同一段代码,就会发生冲突。
二、使用Git的基本步骤1. 初始化仓库:首先要将待管理的代码保存到一个本地仓库中,我们可以通过执行以下命令来初始化一个Git仓库:git init2. 添加文件:将想要进行版本管理的代码文件添加到Git仓库中:git add <filename>3. 提交代码:当我们完成一定的代码修改后,需要执行git commit来提交这些变化,并对修改进行描述:git commit -m "commit message"4. 查看提交记录:执行git log可以查看项目的提交记录,包括提交作者、日期和提交信息等。
5. 分支操作:可以使用git branch来创建新的分支、切换分支或删除分支等操作:- 创建新分支:git branch <branchname>- 切换分支:git checkout <branchname>- 删除分支:git branch -d <branchname>6. 合并分支:使用git merge将两个分支合并:- 切换到需要合并的分支:git checkout <branchname>- 合并分支:git merge <target_branch>7. 解决冲突:当合并分支时,如果发生冲突需要手动解决,在代码中标记冲突并在代码中手动修改。
Git知识复习记录-尚硅谷Git入门到精通全套教程(涵盖GitHubGitee码云GitL。。。
Git知识复习记录-尚硅⾕Git⼊门到精通全套教程(涵盖GitHubGitee码云GitL。
P1-P18内容复习P6 06_ 尚硅⾕_ Git概述_⼯作机制和代码个⼈学习总结:关键理解⼯作区暂存区本地库之后学习到git的常⽤命令就是add commit⼯作区就是指代码磁盘的⽬录位置看图理解复习即可不懂再看视频简单回忆即可明⽩P8 08_ 尚硅⾕_ Git_ 命令_设置⽤户签名因为之前是学过git的所以已经设置过⽤户签名跟着视频再次复习时就没有再重新设置⽤户签名了⽹上搜了⼀下如何查看已设置的⽤户签名的⽅法※注意:这⾥设置⽤户签名和将来登录 GitHub(或其他代码托管中⼼)的账号没有任何关系。
P9 09_ 尚硅⾕_ Git_ 命令_初始化本地库跟练截图P10 10_尚硅⾕_Git命令查看本地库状态这⼀部分会经常使⽤⼀些命令看视频就觉得很熟悉但具体的⼜记得不是很清楚视频⾥说了git和Linux的命令是通⽤的因为他俩是⼀个爸爸所以⼜百度了⼀下常⽤命令其实配套的笔记⾥也有也完全够⽤了跟练截图:红⾊表⽰这个⽂件当前还仅仅是在⼯作区 git还没有追踪过这个⽂件P11 11_ 尚硅⾕_ _Git 命令添加暂存区如果你不想保存⼀个历史版本暂存区⾥的内容是可以删除的个⼈总结:主要就是⼏个常⽤命令:git add就是把你⼯作区⾥的⽂件添加到暂存区。
通过git status查看⽂件状态,如果⽂件名是红⾊的说明git还没追踪到,也就是你没有把这个⽂件add到暂存区,⽂件名是绿⾊的就说明已经add到了暂存区。
通过git rm删除⽂件仅仅是把暂存区⾥的⽂件删掉了,你本地的⼯作区⾥的⽂件仍然存在。
P12 12_ 尚硅⾕_Git_ 命令提交本地库关键就是命令git commit将⽂件提交到了本地库还有就是这个版本号之后要想切换版本需要⽤到P13 13_ 尚硅⾕_ Git命令_修改⽂件P14 14_ 尚硅⾕_ Git命令_版本穿梭版本穿梭底层就是移动head指针P16 16_ 尚硅⾕_ Git分⽀_查看&创建&切换P17 17_ 尚硅⾕_ Git分⽀_ _合并分⽀(正常要把hot-fix分⽀合并到master分⽀上就必须站到master分⽀上P18 18_ 尚硅⾕_ Git分⽀合并分⽀(冲突。
Git学习笔记(SourceTree克隆、提交、推送、拉取等)
Git学习笔记(SourceTree克隆、提交、推送、拉取等)学习⼀下sourcetree使⽤git⽬录⼀克隆Clone⼆提交Commit和推送Push三拉取pull和获取fetch四版本回退reset五检出checkout六标签Tag⼀从远程库克隆CloneClone就是将远程库的代码拷贝到本地。
填写远程和本地项⽬路径,点击“克隆“。
这样就会将服务器上项⽬代码克隆到本地了。
git -c diff.mnemonicprefix=false -c core.quotepath=false clone --recursive https:///gamedaybyday/HelloGit.git D:\Git\HelloGit Cloning into 'D:\Git\HelloGit'...⼆提交Commit和推送Pushcommit将⼯作空间修改提交到本地库。
push将本地库修改提交到远程库。
新建⼀个test.txt来测试,任意改点什么。
在⽂件状态处可查看,红⾊为删除,蓝⾊为增加部分。
将修改后⽂件由未暂存⽂件,勾选到已暂存⽂件。
选择提交添加修改⽇志。
这⾥如果勾选“⽴即推送变更”则会同时执⾏commit和push。
git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\gzy\AppData\Local\Temp\ofkmvj0p.tft这时,修改的代码提交到了本地仓库。
sourcetree会提⽰有修改代码尚未推送到远程库。
选择推送。
将本地仓库推送push到远程库。
git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin master:master三拉取pull和获取fetchpull 从远程拉取最新版本到本地⾃动合并 mergefetch 从远程获取最新版本到本地不会⾃动合并 merge虚线表⽰拉取到本地仓库实现表⽰拉取到本地仓库,并合并到⼯作空间git -c diff.mnemonicprefix=false -c core.quotepath=false fetch originFrom https:///gamedaybyday/HelloGit9664a7c..42c8f2e master -> origin/mastergit -c diff.mnemonicprefix=false -c core.quotepath=false fetch origingit -c diff.mnemonicprefix=false -c core.quotepath=false pull origin masterFrom https:///gamedaybyday/HelloGit* branch master -> FETCH_HEAD假如有冲突,使⽤解决冲突。
git学习心得
git学习心得在工程开发中,版本控制系统是不可或缺的一部分。
而Git作为目前最流行的分布式版本控制系统,不仅能够高效地管理代码,还能够方便地与其他开发者协作。
在我的学习过程中,我深刻体会到了Git的强大功能和便捷性。
一、Git的基本概念Git是一个分布式版本控制系统,与集中式版本控制系统不同,Git 的每个开发者都有自己的完整版本库。
Git的基本概念包括:1. 仓库(Repository):存储代码的地方,每个开发者都可以有自己的仓库,也可以有共享仓库。
2. 提交(Commit):将修改的文件保存到本地仓库,每个提交都有一个唯一的标识符。
3. 分支(Branch):用于创建新的开发分支,可以同时进行多个任务的开发,不同的分支在修改代码时互不影响。
4. 合并(Merge):将一个分支的修改合并到另一个分支,确保不同分支的代码同步更新。
5. 拉取(Pull):从远程仓库获取最新的代码。
6. 推送(Push):将本地仓库的修改推送到远程仓库,与其他开发者共享。
7. 冲突(Conflict):当多个开发者对同一个文件进行修改时,可能会发生冲突,需要手动解决。
二、Git的优势1. 分布式架构:每个开发者都有自己的完整版本库,可以离线工作,在开发过程中不受网络限制。
2. 快速:Git对数据进行了高效压缩和存储,使得提交和切换分支的速度非常快。
3. 强大的分支管理:Git提供了强大的分支管理功能,使得并行开发变得更加简单,不同分支的代码相互独立,不会相互干扰。
4. 完整记录:Git能够对每次提交进行记录,包括提交的作者、时间、以及具体修改内容,方便开发者进行代码审查和排查问题。
5. 协作性强:Git可以方便地与其他开发者协作,通过推送和拉取的方式进行代码共享和合作。
6. 可撤销性:Git允许开发者对过去的操作进行撤销或修改,但需要谨慎使用以避免混乱和数据丢失。
三、Git的学习心得在学习Git的过程中,我深刻感受到了它带来的便捷和效率提升。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Git 基础配置1、用户信息初次安装需要设置以后提交的用户名和邮件地址。
设置时指定为—-global,也就是说以后的每一次操作默认都会以该配置生效。
当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有--global选项的命令来配置。
$ git config --global "mrling"$ git config --global user.email mrling_work@2、指定文本编辑器$ git config --global core.editor emacs3、查看git配置$ git config –list 查看所有配置$ git config <key> 查看指定配置忽略文件.gitignoreGit 基本使用基本命令1、git init/git clone创建本地仓库或者克隆已经存在的仓库,命令格式是git clone [url]$ git init (在指定目录右键打开git bash 运行命令看到.git文件夹出现表示创建本地仓库成功)$ git clone https:///libgit2/libgit2 mylibname(为克隆远程仓库并以mylibname名字报存)2、git status检查当前文件状态git status –s(-s简单显示)$ git statusOn branch masternothing to commit, working directory clean所有已跟踪文件在上次提交后都未被更改过。
此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪状态的新文件,否则Git 会在这里列出来。
最后,该命令还显示了当前所在分支,并告诉你这个分支同远程服务器上对应的分支没有偏离。
git add可以跟踪一个文件,也可以将已跟踪修改过的文件放到暂存区中@1命令git add开始跟踪一个文件$ git add READMEwarning: LF will be replaced by CRLF in README.The file will have its original line endings in your working directory.(正常提示,表示该文件未在远程仓库,不影响commit)@2暂存已修改文件$ git statusOn branch masterInitial commitChanges to be committed:(use "git rm --cached <file>..." to unstage)new file: READMEChanges not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory) modified: README文件README出现在Changes not staged for commit这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。
要暂存这次更新,需要运行git add命令。
这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。
将这个命令理解为“添加内容到下一次提交中”而不是“将一个文件添加到项目中”要更加合适。
现在让我们运行git add将" README "放到暂存区,然后再看看git status的输出:$ git statusOn branch masterInitial commitChanges to be committed:(use "git rm --cached <file>..." to unstage)new file: READMEgit 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_togit mv 命令就相当于执行以下三个命令$ mv README.md README$ git rm README.md$ git add READMEgit loggit 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.47commit322c3a0 - mrling, 5 hours ago : 28eafdb8 - 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 --amendgit 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:///paulboone/ticgit添加远程仓库示例:$ git remoteorigin$ git remote add pb https:///paulboone/ticgit$ git remote -vorigin https:///schacon/ticgit (fetch)origin https:///schacon/ticgit (push)pb https:///paulboone/ticgit (fetch)pb https:///paulboone/ticgit (push)git fetch(抓取)$ git fetch [remote-name] 访问远程仓库(如果你是克隆的仓库,则默认生成的origin 就是remote-name这个参数的值,也可以是地址),从中拉取所有你还没有的数据。