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
文件中就有如下信息
参照文件中的格式就可以直接在文件中配置更多的快捷命令
如此配置完成后,
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
里面的内容
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分支并推送