git笔记

作者: Josephx | 来源:发表于2019-06-28 16:57 被阅读0次
  1. 下载git for windows 一路next
  2. mkdir在家目录下新建git文件夹
mkdir git    #新建文件夹
cd      #回家目录
ll        #列出文件
cd git    #进入git文件夹
pwd  #输出当前目录
  1. 部署全局用户
git config --global user.email "179254624@qq.com"
git config --global user.name "joseph"

用英文字符
ctrl+l清屏

  1. 配置部署
subl .gitconfig

sublime百度下载
如出现不能运行参考 用Git Bash从命令行启动Sublime

显示user信息即为成功


全局用户信息.png
  1. 本地创建库(创建项目systest)
cd git
mkdir systest
cd systest
git init
  1. 配置项目作者
ls -a   #显示隐藏文件
cd systest #进入项目文件夹
subl .gitconfig

得到仓库的默认配置


systest仓库的默认配置.png
  1. 更改本项目的信息
git config user.name "josephxie"
  1. 克隆其他人的项目
  • 复制仓库地址
  • 新建一个仓库

主要文件夹下不要有/.git/隐藏文件

  • 在git bash中输入
git clone https://github.com/xxx/xxx.git
git clone -b develop  .git地址          #clone某个分支
  1. 删除项目 (谨慎危险)
git rm -rf *   #删除所有
  • 暂存区不同情况处理
git rm --cached readme.txt  #仅删除远程库中的文件,本地库中不变(没有提交过的项目)
git reset HEAD readme.txt #提交过的文件,修改状态撤销
git checkout -- readme.txt #回到最初始状态
touch a.txt
git add 'a,txt'
git rm --cached readme.txt  #从暂存区撤销
  1. 仓库内新建文件
touch readme.txt
  1. 查询提交仓库
  • 查询仓库内状态
cd systest
git status
git status.png
  • 放入暂存区
git add readme.txt #放入暂存区
  • 利用sublime创建文件
subl git.py
git status
不同提交状态.png
  • 提交仓库
git commit -m "测试学习"
提交仓库.png
  • 提交所有文件
git add .
  • 忽略文件
subl .gitignore

打开sublime以后,写入忽略的版本(不再被检测)

*.txt #所有txt文件不提交
*.txt  #除了a.txt,其他所有txt都不提交
!a.txt
/vendor  #忽略整个文件夹(文件夹中没有文件自动忽略)
/vendor/readme.txt  #仅忽略文件夹内某一个文件不提交(不能忽略下面子目录内的文件)
/vendor/**/*.txt  #忽略vendor及其子目录内的所有txt文件

  1. 改名操作
git mv readme.txt readme2.txt
  1. 查询日志
git log
git log -p #详细信息
git log -p -1 #最近一次提交
git log --name-only  #仅看文件的变化
git log --name-status  #看文件发生的具体变化(添加修改等)
git log --oneline #极简模式
  1. 修改日志描述
git commit --amend

进入vim编辑器,点击i进入编辑模式,修改以后,点ESC,按wq保存退出

  1. 添加别名
git config --global alias.a add  #将a设置成add
git a .
cd 
subl .gitconfig
sublime设置别名.png
  1. 分支
  • 分支的创建
cd
cd git
mkdir systest
cd systest
git init
touch readme.txt
git add .
git commit -m 'first commit'
git branch  #显示分支列表
git branch index #建立index分支
git checkout index    #切换到index分支
(git checkout -b index  #创建并切换分支index)
  • 分支的合并和删除
git branch #查看分支
git checkout master #switch master branch
git merge index  #merge index to master
git branch -d index #delete index branch
  • 查看已经合并后的分支(可能已经干完活)
git branch --merged
  • 查看未合并后的分支(没有干完活)
git branch --no-merged

没有合并的分支,不能通过git branch -d index删除,可以通过git branch -D index删除

  • 临时切换分支,但是当前修改文件只有add,没有commit的情况
#创建仓库并添加文件a.php
cd
cd git
mkdir systest
cd systest
git init
touch a.php
git add .
git commit -m 'first'
git branch develop
subl a.php   #进行文件修改
git add .
git checkout develop  #此处提示失败
----
git stash #将a.php放入存储区
git stash list  #查看暂存地址
git stash apply  #恢复存储区
git stash drop stash@{0}  #删除存储区
git stash pop #恢复存储区并删除存储区
  1. 标签
    某一个阶段的总结和发布,不要乱发标签
git tag  #标签列表
git tag v1.0  #创建标签
  1. 发布压缩包
    只是生成某个分支的压缩包
git archive master --prefix='systest/' --forma=zip > hdcms.zip  
  1. rebase合理优化分支合并
    分支index commit之后,发现master也发生了commit,这时候只能通过master来处理冲突,这是不合理的(并出现合并日志)
    此时需要index分支rebase将起始点移动到master最新提交的点,再做合并
git rebase master
git checkout master    #切换分支
git branch merge        #合并分支

给开源项目提交项目,需要事先rebase

  1. 链接github
  • 19.1 注册GitHub,新建仓库
  • 19.2 生成公钥
    19.2.1 执行ssh-keygen -t rsa一路回车
    19.2.2 如果没有执行,则先执行$export PATH=/usr/bin:$PATH设置path

mac 执行命令行 $ssh-keygen -t rsa -C "youremail@example.com"
将邮箱替换成自己的邮箱,如文件夹已经存在,执行yes,重写文件夹
19.2.3 执行subl id_rsa.pub

19.2.4 进入ssh文件夹cd ~/.ssh
19.2.5 复制公钥subl id_rsa.pub
19.2.6 进入github主页,点击头像-setting-SSH and GPG keys 添加公钥
19.2.7 链接成功 使用git push推送远程,git clone SSH地址 下载克隆

如遇链接失败,可以
cd .ssh
subl known-hosts
删除所有数据

  1. 主机在本地与远程服务器关联
  • 添加远程仓库
    git remote add origin +SSH地址

如果切换仓库,先执行git remote rm origin

  • 查看远程仓库
    git remote -v
  • 推送数据到远程仓库
    git push -u origin master
  1. 远程分支的管理
  • 查看远程分支列表
    git branch -a
  • 如果本地与远程分支不对应执行git push会报错,可以执行命令git push --set-upstream origin index
  1. 新员工如何剪出已存在的分支,并提交自己内容
git clone SSH地址:systest
git pull origin index:index  #请求远程把index分支剪入到本地的index分支
git push
git push --set-upstream origin index
  1. 远程合并到master
git checkout master
git pull        #更新master到最新状态
git checkout index
git rebase master #把index起始点移动到当前master
git checkout master
git merge index
git push
git branch merged #查看已经合并的分支
  1. 删除远程分支
git push origin --delete index
git branch -a #查看分支
git branch -d index

相关文章

网友评论

      本文标题:git笔记

      本文链接:https://www.haomeiwen.com/subject/aerlaqtx.html