Git常用操作总结
来源:互联网 发布:java不是方法的特征 编辑:程序博客网 时间:2024/05/18 02:54
安装
a、Ubuntu安装Git只需要直接使用apt-get install git
b、 通用的安装方法,下载源码编译安装:进入config目录,一次使用make, make install 编译安装即可配置自己的git账户,可以是github,coding等等。
git config --global user.name "账户名称"git config --blobal user.email "邮箱"
创建仓库并提交
仓库:亦即版本库,在项目根目录下,输入git init
进行版本库创建或者重新初始化一个版本库。
版本库创建完成后,会在项目根目录下生成一个 .git 目录,存放着git进行版本控制所需要的一些文件。具体目录文件如下:
其中,有几个目录和文件比较重要,分别是:Objects
目录:存储所有的数据内容refs
目录:存储指向数据(分支)提交对象的指针HEAD
文件:指示目前被引用的分支, 使用git branch
切换分支或git commit
提交等操作时就会用到HEAD
文件信息index
文件:存放暂存区信息
这里,由于没有进行git add
目录将项目文件添加到暂存区,没有index文件,只要执行git add .
再次查看就可以看到index文件了
这里,我先创建一个 text 文件,然后使用git status
查看当前状态:
最后,使用
git commit -m "first commit"
进行提交即可将当前版本的项目提交到仓库。
其中 -m后面带的是此次提交的信息,通常是写本次提交所做的改动说明。
然后修改text文件,我这里输入仅 first line ,然后使用git diff text
查看text文件的改动:可以看到 first line 前面有个 + 号,表示新增加的内容,而对已提交的内容进行删除,使用
git diff
查看时就会显示 - 号这里,单单使用
git diff
仅仅只是查看已经修改但还没暂存的变化,而使用git diff --cached
命令可以查看已经暂存的对比上次提交的变化再次使用
git add text
将text文件的修改保存到暂存区(每次提交前都得先暂存,否则将会报 change not staged for commit ,并且提交失败, 但可以通过给commit 命令添加 -a 参数来跳过add步骤),然后进行提交 `git commit -m “add content first line “使用.gitignore 文件来忽略不必要提交的文件,一下是 .gitignore文件的语法规则:
- 配置的都是忽略的文件: 例如*.class 表示忽略所有的class文件
- 忽略目录使用 /directory, 例如:/build 表示忽略build目录
撤销修改:
- 未暂存(执行add命令)的:直接使用
git checkout -- filename
进行撤销即可 - 已暂存的需要分两步:
- 先使用
git reset HEAD filename
撤销暂存 - 然后再使用
git checkout -- filename
撤销修改
- 先使用
- 未暂存(执行add命令)的:直接使用
- 撤销提交:
- 撤销上一次的commit :
git revert HEAD
- 撤销上上次的commit:
git revert HEAD^
- 撤销特定的commit :
git revert commit_id
- 撤销上一次的commit :
- 查看提交记录:
- 查看所有提交记录:
git log
, 加 -p 参数可以显示每次提交所做的改动,注意这里和很多git命令一样,也可以通过文件名对单个文件进行操作,如:git log -p text
查看对text文件的提交的修改 - 查看最近n次提交记录:
git log -n
- 查看某次提交记录:
git log id
这里的id是指commit的id
- 查看所有提交记录:
- 移除文件:
- 移除跟踪(从暂存区移除)但不删除文件:
git rm --cached filename
- 移除跟踪同时删除文件:
git rm filename
- 移除跟踪(从暂存区移除)但不删除文件:
- 分支
- 初始化后会自动创建一个master分支
- (从当前分支)创建新分支:
git branch -b branchname
- 查看分支:
git branch -a
带 * 的是当前正在编辑的分支 - 切换分支:
git checkout branchname
- 合并分支,这里直接沿用上面的例子:
- 先新建分支branch2:
git branch branch2
- 切换到branch2:
git checkout branch2
- 在text文件中添加一行: second line
- 切换回master分支:
git checkout master
- 现在将branch2 做的改动合并到master分支上:
git merge branch2
- 先新建分支branch2:
- 删除分支:
git branch -D branchname
与远程版本库协作
- 下载版本:
git clone remote_repository_address
remote_repository_address 是项目地址 git remote origin
查看远程版本库origin的信息- 提交本地版本库改动到远程版本库:
git push origin master
( origin 是指远程版本库名称,master是指要提交的分支) - 将远程版本库上的修改同步到本地:
git fetch origin master
- 查看远程版本库所做改动(相对于指定分支,这里是master分支):
git diff origin/master
- 合并到本地分支:
git merge origin/master
git pull origin master
相当于fetch和merge一起执行- 类似的,
git push origin master
表示将本地修改推送到远程origin仓库的master分支 - 关联远程仓库(例如,本地有一个写好的项目,现在要与远程新建的仓库关联,好把本地仓库的内容推送到远程仓库), 是用
git remote add origin remote_repository_address
, 其中,origin是Git中远程仓库的默认名字。
这个过程其实还涉及Git的远程引用,假如推送到的远程分支是master,则会在生成.git/refs/remote/origin/master
文件,origin代表远程仓库,master代表远程分支。
这里还要注意,虽然可以通过checkout来切换远程分支,但是并不会改变HEAD
文件的引用值,远程引用时只读的。
- 下载版本:
标签功能
一个标签实际是对应着一次commit,由于commit的id值不好记,标签就相当于给一次commit取一个好记的名字。创建标签:
git tag tagname
如:git tag v1.0
创建了一个名字为 v1.0 的标签, 可以通过 -m 参数添加附加信息
也可以指定某次commit 的id,直接在tagname后面:git tag tagname commit_id
删除标签:git tag -d tagname
列出所有标签:
git tag
将本地标签推送到远程仓库:git push origin -tags
标签的用途:标签相当于一个快照,是不能像分支一样进行修改,但可以通过标签创建出一个分支:
git checkout -b branchname tagname
, 然后再对该分支进行编辑储存分支工作现场
我觉得这个才像是一个快照,可以把未提交的修改储存起来。
使用:git stash
储存后,使用git status
查看状态,不会显示未提交的内容。可以从这里创建新的分支完成其他的工作。然后是恢复存储的修改:
可以先使用git stash list
列出所有的存储点。
然后使用git stash apply stash_id
来进行恢复,而这个恢复操作是没有删除该存储点的,使用git stash drop stash_id
进行删除。
git stash pop
进行恢复并且删除。什么时候会用到呢,比如我在dev分支做了一些改动,但还没有完成工作,现在突然想到需要到master分支修改一个bug,那么这个时候就可以先存储dev分支的修改,再切换到master分支了。
当然其实也不一定需要这么做。其实也可以直接新建一个git窗口使用master分支。。
主要参考(当然还有自己以前onenote上做的笔记):
https://git-scm.com/docs/gittutorial
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
- git常用操作总结
- git常用操作总结
- Git常用操作总结
- Git常用操作总结
- Git常用操作总结
- git常用操作总结
- Git常用操作总结
- Git常用操作命令总结
- git 常用指令操作总结
- 总结Git常用命令以及常用操作总结
- Git常用操作命令总结(一)
- Git常用操作命令总结(二)
- Git理解及常用操作总结
- Git常用命令及常用操作总结
- [Git]常用Git操作笔记
- Git常用操作命令
- git常用操作教程
- git 常用操作
- 杭电acm 1418 (抱歉) 欧拉公式
- Linux上Oracle 11g安装步骤图解
- 使用maven完成slf4j的配置
- ISwipeRefreshLayout
- 简单矩阵转置
- Git常用操作总结
- javase基础01
- 退出App前的一个判断
- CodeForces 593D Happy Tree Party(树链剖分(边权) or LCA+并查集)
- 素数距离问题
- Giraph调试奇怪问题记录
- 坚持到底
- PX4固定翼调试校准流程及实验相关问题记录分析
- 使用for循环输出九九乘法表