记录git简单操作,从账户密码到提交代码


如下gitURL表示项目git目录的url

首先得有账户和密码,用以获得git代码库的权限
git config --global user.name MyName
git config --global user.email MyEmail
name中有空格则需要打双引号,如"hello world"
没有账户密码,也能用,但是就访问不了需要权限的资源了

这个邮箱和名字是由git管理员设置的,可以找管理员申请,申请下来之后用git bash设置

git clone  gitURL
把 gitURL的资源下载到本地当前目录

git remote add origin  gitURL
本地端建立与远端的关系,origin只是个名字,以后通过origin操作gitURL
接下来就可以通过git remote、git remote -v查看远端资源了

git pull origin develop
origin的develop分支拉去到本地
git pull origin develop:temp
origin的develop分支拉取合并到本地temp分支
clone之后就不用pull其他分支代码,免得代码多份

直接右键git clone后下载下来的文件夹,可以选择git bash,进入命令行,
默认接下来的命令不用带参数,直接操作,除了git checkout以外

git branch
查看分支

git checkout develop
切换分支到develop,直接在develop中提交
git checkout develop后本地两个版本文件内容不一样的文件会被改动

修改分支中的任意文件
或者新增删除文件

git diff
查看修改,带文件名则查看该文件的修改,带commit hashid则查看commit时与当前工作区之间的修改

git show commit_hash

查看当次提交修改了哪些内容

git add .
添加修改,到缓存中,

git reset head

取消add

git checkout filename

取消文件修改,如果已经add,要先git reset head filename

git status
查看添加了哪些修改文件,有new新增的文件,有modify修改的文件

git commit -m '提交日志'
提交add的文件到本地库,并撰写日志

git push
本地库提交到远程库

git commit是将本地修改过的文件提交到本地库中。
git push  是将本地库中的最新信息发送给远程库。

git pull 拉取最新代码,不带参数,默认拉取分支代码到本地,
最好不要带参数,免得代码多份,搞不清楚

git clone是本地没有,从远端下载一个

git pull是本地有了,拉取最新数据

 

测试服务器有修改,不能pull最新代码测试??

git stash //缓存此次修改,进行其他操作,后续可以把此修改还原回来

git pull  //缓存修改后可以更新文件
git stash apply //还原最近一次的stash
git stash list //查看stash列表,
git stash apply stash@{5} 还原前面第五次的修改

git stash 可以形成list 集合。通过git stash list 可以看到list下的每次stash
使用git stash apply @{x} ,可以将编号x的缓存释放出来,但是该缓存还存在于list中
而 git stash apply,会将当前分支的最后一次缓存的内容释放出来,但是刚才的记录还存在list中
而 git stash pop,也会将当前分支的最后一次缓存的内容释放出来,但是刚才的记录不存在list中

本地代码回退到某一历史版本

git stash //保留当前更改,当前版本上做的修改清空
git log //查看有哪些版本
git reset --hard 49f274d//本地回退到该版本,该版本以后的提交全部清空
git reflog //查看历史提交,reset后,看不到当前版之后提交的历史
git reset --hard b9d0fdc//更新到另一个版本
git stash pop //回复保留的更改

 

新建git项目,提交本地项目到git

git bash
cd到项目根目录
---------------------
git init
git add .
git commmit -m '日志'
git remote add origin http://47.94.184.72/jiangyawen/official-post.git   // git上new project的之后会有提示,找到这个
git push //如果失败,会有提示,按提示做git push --set-upstream origin master(提示的就是这个)

 

分支上多次commit后,合并到develop,默认会显示多条commit记录,影响查看

git merge testbranch --squash

$ git merge testbranch --squash
Automatic merge went well; stopped before committing as requested
Squash commit -- not updating HEAD

会压缩多条commit为一条,但是执行完之后要再次commit一下

git commit -m 'merge multi commit'
git push

 

或者用git rebase手动编辑合并多次提交,分两步:1.合并当前分支的提交,2.合并两个分支的代码

当前feature分支
git rebase -i 某次提交的hash值
pick f57075147  commit 1
pick 73daec73a  commit 2
pick 20fe55e23  commit 3

用vim编辑器的编辑功能修改为
pick f57075147  commit 1
s 73daec73a  commit 2
s 20fe55e23  commit 3

:wq
退出后会自动进入另一个编辑页面
编辑commit信息

//amend选项提供了最后一次commit的反悔
//git rebase --amend

git checkout develop

合并后的featrue01变为一次提交,合并到develop中
git merge feature01

git push

2步合成1步,合并提交同时合并分支

当前feature01
git rebase -i -autosquash develop
git checkout develop
git merge feature01

 

查看某行代码是谁改动的

$ git blame -L 283,+1 library/sql/groupsql.sql
e7bc901b5 (dev_one 2019-01-21 18:14:24 +0800 283)   `tag` tinyint(4) DEFAULT '0' COMMENT 'tag for user',

查看某个函数每次的改动

1、2步配置一次即可,不用重复配置
1.用户目录下创建.gitattributes文件
~/.gitattributes
输入
*.php   diff=php

2.配置gitattribute文件
git config --global core.attributesfile "~/.gitattributes"

3.查看函数修改,函数名可以正则匹配
git log -L :函数名的正则匹配:所在文件
git log -L :getUserInfo*function:library/user.php

项目根目录可以有.gitignore文件,用来设置igonre的目录、文件,即不会上传到git的目录、文件
例:
.DS_Store
node_modules/
/dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值