博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git使用笔记
阅读量:1973 次
发布时间:2019-04-27

本文共 2918 字,大约阅读时间需要 9 分钟。

1.版本库

      版本库就是所谓的版本仓库(repository简称repo),本地创建一个空的git库:

git init path
      将远端项目拷贝到本地目录path:

git clone url path
2.name和email的设置

方法一:修改~/.gitconfig
[user]
        name=XXX
        email=
方法二:
$git config --global user.name name$git config --global user.email xxx@xxx $git config --global color.ui true(让git显示颜色,会让命令输出看起来更醒目)
默认编辑器:git config --global core.editor vim
差异分析工具
git config --global core.editor vimdiff
查看配置信息:gitconfig --list
查看某个环境变量的设定:git config user.name
忽略某些文件:.gitignore

3.工作流程

add(working dir)==>commmit(index) ==>HEAD==>push(remote server)
working dir工作目录:持有实际文件
index缓存区:缓存区域临时保存你的改动(只要文件add到缓存区中之后,在工作目录下面做的改动都可以捕捉到)
HEAD:指向最近一次提交后的结果
将代码添加到缓存区:
git add <filename>  |  
git add .
提交改动: 
git commit -m "comment" 
改动提交到了head,但是还没有放到远端仓库,应该要push才可以,git的提交注释必须不能为空,否则就会提交失败。
推送改动(改动现在已经在本地仓库的HEAD中,将改动提交到远端仓库):
git push origin master
没有clone仓库将仓库连接到远程服务器,使用如下命令添加:
git remote add origin <server>
push操作:
将分支推送到远端仓库:git push origin <branch>
git push origin <branch>:refs/for/master
如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:
$git push origin test:master         // 提交本地test分支作为远程的master分支

$git push origin test:test              // 
提交本地test分支作为远程的test分支
branch操作:
创建新分支并立即切换到新分支:git checkout 
-b
 [name]
查看分支(本地分支):git branch
产看远程跟踪分支:git branch -r
建立分支:git branch <branch_name>
切换分支:git checkout <branch_name>
创建+切换分支:git checkout -b <branch_name>
删除分支:git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
其他
查看状态:git status,有几种状态的文件:
Changed not staged for commit:git add之前,在工作区的文件(modified),git add添加;git checkout 放弃在工作目录的修改。
Untracked files:没有被追踪的新文件(new file),也就是没有被添加到工作区的文件,使用git add进行添加。
Changes to be committd:需要被提交的文件,
git reset HEAD file来撤销。
git add only modified changes and ignore untracked files:
git ls-files --modified | xargs git add
"git add ."和"git add *"的区别
前者是将changed but not updated和Untracked files文件加入到working dir;后者是将所有文件(包括.gitignore忽略的文件)加入到working dir里面去。
log日志操作:
>git log --pretty=oneline:仅一行显示log
>git reflog:查看历史命令
>git log --graph:命令可以看到分支合并图
>git log -n:查看最后n次提交的log
>git log -p :  显示每次提交差异

HEAD及前进和回退:
HEAD
表示当前版本,也就是最新的提交
3628164...882e1e0
(注意我的提交ID和你的肯定不一样),上一个版本就是
HEAD^
,上上一个版本就是
HEAD^^
,当然往上100个版本写100个
^
比较容易数不过来,所以写成
HEAD~100
>git reset --hard commit_id(回到任意的版本状态,但是前提似乎是你要记住版本相应的commit_id)
>git reset HEAD file:取消已经添加到暂存区的文件file(即经过git add file操作的文件)

撤销修改:

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file(即在工作区修改的文件想撤销修改)

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

切换到tag:

>git tag(查看tag列表)
>git checktout -b <branch_name> <tag_name>

svn命令与git命令主要对比:

SVN GIT
svn admin create git init
svn checkout git clone
svn update git pull
svn add git add
svn commit git add,git commit
svn status  git status
svn switch <branck> git checkout <branch>
svn merge <branch> git merge <branch>
svn revert <file>  git checkout <file>

Author:忆之独秀

Email:leaguenew@qq.com

注明出处:

转载地址:http://kvnpf.baihongyu.com/

你可能感兴趣的文章
调试 LenaCV 3D Camera (Linux)
查看>>
OpenCV杂记 - Mat in C++
查看>>
lnmp部署
查看>>
location区段
查看>>
nginx访问控制、基于用户认证、https配置
查看>>
用zabbix监控nginx
查看>>
SaltStack
查看>>
Jenkins 控制台输出中的奇怪字符
查看>>
Linux添加系统调用
查看>>
linux内存的寻址方式
查看>>
ubunut16.04的pip3出现问题,重新安装pip3
查看>>
how2heap-double free
查看>>
how2heap-fastbin_dup_consolidate
查看>>
orw_shellcode_模板
查看>>
[fmt+shellcode]string
查看>>
fmt在bss段(neepusec_easy_format)
查看>>
[double free] 9447 CTF : Search Engine
查看>>
[fast_bin_consoli + unlink]sleepyHolder_hitcon_2016
查看>>
python 函数式编程
查看>>
python编码
查看>>