git的相关学习

一、git的安装

windows的安装:git for windows
安装完成后,在命令行输入git --version,能看到版本号就代表安装成功了

二、配置个人信息

需要配置个人的邮箱以及姓名,这样在执行git提交时,会引用这两个信息,可以清楚知道是谁做了提交,配置的语句如下:

git config --global user.email '<邮箱名>'
git config --global user.name '<名字>'

执行过命令后,会在系统根目录下生成.gitconfig,打开该文件后,里面有刚才配置的个人信息

三、常用的git命令

1、git init初始化仓库
2、git clone <仓库网址>克隆已有的仓库
3、git add index.php提交单个文件index.php
4、git add .提交所有的文件
5、git add *.php使用通配符提交某类文件
6、git status查看状态
7、git commit -m '第一次提交'将add提交的文件提交到仓库中
8、git commit -a -m '提交信息'如果要提交的是已经提交过的文件,那么就可以不需要再执行add命令
9、git rm index.php删除仓库和本地的index.php文件
10、git rm --cached index.php只删除仓库中的文件,本地项目里的文件依然保留
11、git commit --amend修改最后一次的提交信息
12、git ls-files查看仓库中的所有文件
13、git push推送
14、git pull拉取

四、日志log

1、git log查看所有的日志(如果过长,按q退出)
2、git log -p -2查看最近的两次提交日志并显示文件的差异
3、git log --name-status查看新增,修改,删除的文件清单
4、git log --oneline一行显示日志信息

五、配置快捷命令

1、在.gitconfig中配置快捷命令(设置别名):
通过命令配置

git config --global alias.a add .
//.有特殊意义,需要在文件中手动添加

这样在.gitconfig文件中就有如下信息

gitconfig.png

参照文件中的格式就可以直接在文件中配置更多的快捷命令
如此配置完成后,git a就相当于git add .
2、在系统的.bash_profile文件中配置快捷命令

alias gs="git status" 
alias gc="git commit -m " 
alias gl="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit  " 
alias gb="git branch" 
alias ga="git add ." 
alias go="git checkout" 

配置完成后,需要重启命令行终端,windows是git bash,之后在使用gs就相当于使用了git status

六、配置忽略文件.gitignore

在配有.git仓库的目录下,配置.gitignore文件,在文件中可以直接设置在提交时需要忽略的文件

a.php
/vendor
.idea
*.txt

如此配置,在提交时就会忽略a.php文件,.idea隐藏文件,vendor目录(文件夹)以及所有的txt文件

七、分支

本地只有在第一次提交完成(即git commit -m)之后,才会有分支master
1、git branch查看所有的分支
2、git branch admin创建admin分支
3、git checkout admin切换到admin分支
4、git checkout -b b创建并切换到b分支
5、合并分支,如下是将admin分支合并到主分支master上,

git checkout master
git merge admin

6、git branch -d admin删除已合并的admin分支
7、git branch -D admin删除未合并的admin分支
8、git branch --no-merged查看未合并的所有分支(必须在主分支下才能查看)
9、git branch --merged查看已合并的所有分支

冲突

在分支合并时可能会产生冲突,因为不同分支修改了同一文件或者是不同开发者修改了同一分支的文件,这时候需要手动修改冲突的文件,修改完成后执行git add .以及git commit -m

八、暂存工作状态

需要暂存工作状态的原因:比方说目前在分支1下开发,但这时候需要到分支2下开发,而分支1下做的工作还不能提交,就需要将分支1下的工作状态暂存起来,在分支2下完成开发后再回到分支1下取出暂存的状态继续开发
在暂存前需要先git add .提交一下,但不要git commit -m
1、git stash暂存工作状态
2、git stash list查看暂存列表
3、git stash apply应用最近的一次暂存
4、git stash save ''暂存工作状态并添加暂存信息
5、git stash apply stash@{2}应用暂存列表中的stash@{2}这一个暂存
6、git stash drop stash@{1}删除暂存列表中的stash@{1}这一暂存,删除之后,之后的暂存都会顺次向前移
7、git stash pop应用最新的暂存并删除该暂存

九、标签

可以给某一版本添加标签,比方所版本号
git tag v1.0添加标签
git tag查看标签

十、发布

git archive master --prefix='<目录>/' --format=zip > <打包后的文件名>.zip

该命令可以将master分支下的代码生成压缩包供上传服务器或别人下载使用

十一、码云等在线仓库

1、在码云上创建项目

2、生成ssh密钥

ssh-keygen -t rsa一直按回车直到结束,然后会在~/.ssh/目录下生成密钥id_rsa以及公钥id_rsa.pub,然后在码云等在线仓库下添加公钥id_rsa.pub里面的内容

码云上的添加公钥.png

3、将码云上创建的项目克隆到本地

git clone <项目的ssh地址>

4、本地修改提交后通过git push推动到在线仓库上

5、不经过git clone,直接就将本地的项目推送到码云等在线仓库中

①首先在码云上添加自己的ssh公钥,通过ssh-keygen -t rsa生成
②在码云上生成一个空的项目
③在本地创建本地库,并完成初始化提交

git init
touch README.md
git add .
git commit -m '本地仓库初始化提交'

④给本地仓库添加远程仓库
git remote add origin <码云上创建的空的项目的ssh地址>
⑤查看远程仓库
git remote -v
⑥将本地数据推送到远程仓库
git push -u origin master
注:如果是通过git clone克隆的仓库,本地和远程已经关联,可直接通过git push推送

6、git pull

拉取远程主机的某个分支的更新,并与本地的某个分支合并
git pull origin ask:ask拉取关联的远程主机的ask分支与本地的master分支合并
git pull origin ask拉取关联的远程主机的ask分支与当前的分支合并
git pull远程的分支与本地当前的分支同名可以直接拉取

7、git push

git push origin将当前分支的内容推送到远程主机相同分支
git push -u origin master将当前分支的内容推送到远程主机指定的分支上
git push origin --delete ask删除远程的ask分支
git push --set-upstream origin ask关联远程的ask分支并推送

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容

  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,848评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,897评论 0 11
  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,486评论 0 13
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,663评论 1 17
  • 昨天看到朋友分享的一段文字,写得简直不要太好: 与你能量同频的人会,喜欢你、肯定你、欣赏你、陪伴你、珍惜你。 与你...
    藏秘Jeven阅读 694评论 0 0