git常用命令汇总

针对常用的git命令,进行汇总记录,以便及时查询

git 使用总结:

将服务端拉到本地:
git clone http://wfw……name.git .
最后一个点是拉到本地哪个目录,如果不写,则在当前目目录下建一个name的目录来放此git的本地副本
git pull
拉取最新的代码状态

———————分支———
git branch
列出所有分支,带*的为当前分支
git branch -d
尝试删除不用的分支,如果分支未合并,则不会删除
git branch -D
删除分支,未合并也删除
git branch abc
创建一个abc分支
git checkout abc 切换到abc分支
git checkout  origin/master -b  test 用master创建一个test分支,即:抓取服务器上指定分支到本地

git push origin  test 分支提交到服务器
git branch -av    查看服务器分支执行前,要先拉取最新的代码状态:git pull
git push origin :testbranch 将本地删除的分支,提交到服务器
————————提交—————
git add -A
添加本地所有新增文件
git commit -a
提交所有到仓库,直接提交,省去add但新增的文件夹另不进来
git diff 显示本地所有文件修改的变化情况。    git push 将本地当前分支的代码全部提交到服务器上的所有分支
git rebase -i 版本ID,修改此版本ID后面提交的提交情况


当你提交的代码后,管理员发现,您的代码不能提交到服务器上,主要原因在于,你的 commit 中和服务器中的有些commit不再同一时间轴上,即:你的有些commit要插入到服务器中的某些commit之间,这样就会造成代码的冲突。所以这个 时候就要使用git rebase。
 假如,你平时使用的分支叫 new ,然后在这个分支上你刚提交过几个commit。
 做法:
1.新建一个分支,并且代码和服务器中代码同步
   git checkout origin/v2.0 -b temp  
2.为了保证新建的temp分支代码是最新的,可以多执行下面一步
  git pull
3.当你新建分支后,系统会自动checkout到temp分支上,此时
  git checkout  new
4.合并代码,并整理
  git rebase  temp  //会将temp分支的代码合并过来,并按照提交的顺序排序
5.  因为顺序是重新整理的,所以肯定会出现冲突
6.解决冲突,最后 git add * ,但不许要git commit
7.解决后,执行 git rebase --continue
8.重新提交代码: git push for-*



————————git 栈—————————
git stash 保存当前工作区内容,然后把最近一次的提交的代码抓到本地以便修改紧急需求

git stash list 列出总共有多少次临时保存记录
git stash pop 将工作区恢复到最近一次临时保存前状态(临时更改完成后,commit后进行操作)
git stash apply 将某一次的Git栈,恢复
git stash clear 将栈清空

————————配置
git config user.name
git config user.email
必须要与服务器上的一至,如果不一至,则要修改,但commit过的需要使用以下命令把已经提交的记录修改过来:
git commit --amend --author=“XXX <XXX@AAAA.com>"
git commit  --amend --reset-author 重新定义提交者的帐号信息,有时改了user的信息,提交还是不行,用这个就可以了

git log
显示所有修改日志
git checkout . && git clean -xdf
删除本次所有改动,把当前内容还原到上次push的状态。

———————版本比较
git diff 显示工作目录与索引区文件之间的差异
git diff --cached 显示索引区与git仓库之间的差异
git diff HEAD 显示工作目录与git仓库之间的差异
git diff HEAD^ 比较上次提交
git diff HEAD~2 比较上2次提交
git diff <branch1> <branch2> 在两个分支之间比较
git diff <id1> <id2> 比较两次提交之间的差异

抓取服务器上指定分支
git checkout -b staging origin/staging

——————————简写命令
vi ~/.gitconfig
添加下面的内容
[alias]
    co = checkout
    ci = commit
    s = status
    pl = pull
    ps = push
    d = diff
    dt = difftool
    dt = difftool
    l = log --stat
    cp = cherry-pick
    ca = commit -a
    b = branch
    ac = commit -a -m
    conl = git checkout production
    online = pull origin production
用法如 在production分支下时,执行拉最新代码 git online  

代码语法检查,

可以定一个脚本,检查语法错误的,或是借用第三方工作进行检查,然后将该脚本放到项目的 .git/hook/pre-commit 位置,也可以放到一个位置软链到多个项目 git/hook/pre-commit 中,这时,在提交时,会检查语法规范,提高代码质量。



windows中的换行符为 CRLF, 而在Linux下的换行符为LF,

所以在执行add . 时出现提示:warning: LF will be replaced by CRLF

解决办法:


  1. $ git config --global core.autocrlf false  //禁用自动转换    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值