GIT命令总结

一.提交代码命令如下:

git add              添加需要提交的文件

git add --all       将所有的文件提交到本地缓存区
git commit         提交的文件增加描述
git push             提交相应的文件

git status             查看修改了哪些文件
git checkout        本地回退修改(未add)
git pull                 拉取代码

二.拉新的项目时提交代码时会出现问题:

git config remote.origin.push refs/heads/*:refs/for/*

解决方法如下:

git push 不成功时:

git push origin HEAD:refs/for/master

gitdir=$(git rev-parse --git-dir)
scp -p -P 39418 vera.shi@192.168.23.98:hooks/commit-msg ${gitdir}/hooks/
git commit --amend --no-edit

git push origin HEAD:refs/for/master

三.创建删除本地分支,命令如下:

git branch             创建新分支
git branch -d         删除本地分支

git branch -a         查看远程分支(前面带*号表示本地当前分支。)

git checkout 分支名称   切换分支

四.撤销修改的文件,命令如下:

git checkout .                       撤销对所有已修改但未提交的文件的修改,但不包括新增的文件

git checkout [filename]        撤销对指定文件的修改,[filename]为文件名

git reset --mixed HEAD^     撤销commit和所有add文件

五.想保存本地代码,然后拉取服务器的最新代码的操作是:

git stash -> git pull -> git stash pop(手动解决冲突)

六.回退到之前的节点命令:

git log        找到要回退到的commit id

git reset --hard [commit id]       回退到对应的节点

七. 创建文件夹,命令如下:

mkdir 文件夹名称

八.合入/打包 patch命令如下:

合入patch:  git apply

打包patch:  git patch

九.出现old mode xxx new mode xxx 的提示,解决命令如下:

产生这个问题的原因就是:filemode的变化,比如可能有过文件可读可写可执行的权限变化

切到源码的根目录下,下发指令:

git config --add core.filemode false

这样所有的git库都会忽略filemode变更了

十.取消合并命令如下:

git merge --abort 

十一.ubuntu如何解压和压缩文件

解压zip文件的方法: 直接找到文件路径右键选择解压

十二.ubuntu删除文件命令

删除单个文件或者删除整个文件夹: rm -rf filename

删除多个文件: rm filename1 filename2 filename3

删除所有以.xxx结尾的文件: rm *.xxx

        比如:删除以.pyc结尾的文件:rm *.文件路径/.pyc

十三.修改Ubuntu文件夹权限

sudo chmod -R 777 filename

filename为要修改的文件夹名字。 -R应该是表示递归修改filename文件夹下所有文件的权限。

常用命令如下:

        sudo chmod 600 ××× (只有所有者有读和写的权限)
        sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
        sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
        sudo chmod 666 ××× (每个人都有读和写的权限)
        sudo chmod 777 ××× (每个人都有读和写以及执行的权限)

十四.Ubuntu下打开文本出现^M问题,怎么批量转换

导致原因:这是因为wimdows和linux下对文本的换行处理不同导致的。

解决方法:

1.转换一个文件,操作如下:

dos2unix filename

没有dos2unix的可以这样安装 :

 sudo apt-get install dos2unix

2.当需要进行批量转换文件时,操作如下:

  需sudo权限安装格式转换工具

sudo apt-get install dos2unix

考虑到批量及递归修改,dos2unix命令并不支持递归选项,因此借用findxargs实现批量处理

find . * | xargs dos2unix (对当前目录下面的所有文件执行转换格式的命令)

find -type f | xargs dos2unix

另外,dos2unix自动识别的格式转换可能并不能达到批量效果(可能是因为目录下文件格式混乱),所以保险起见,最好加上指定的转换参数,如:

find -type f | xargs dos2unix -U

十五.Git add无法提交 报错 fatal : LF would be replaced by CRLF...

1.原因:

 windows中的换行符为CRLF(表示回车换行  \r\n),而Linux下的换行符为LF(表示换行  \n),所以执行git add操作时会出现该问题。

(1)、编辑器本身的换行问题

(2)、Git在提交和拉取过程的自动转换问题

2.解决方法

git config core.autocrlf false
git config core.safecrlf false

2.1.Git下处理“换行”(line ending)

        core.autocrlf是git中负责处理line ending的变量,可以设置3个值:true,false,input。

2.1.1.设置为true【config --global core.autocrlf true

          当设置成true时,这意味着你在任何时候添加(add)文件到git仓库时,git都会视为它是一个文本文件(text file)。它将把crlf变成LF。(代码在windows提交,在windows使用,即默认场景)

2.1.2.设置为false【config --global core.autocrlf false

     当设置成false时,line endings将不做转换操作。文本文件保持原来的样子。

(不想要Git自动转换)

2.1.3.设置为input时,添加文件git仓库时,git把crlf编程lf。

        当有人提交时将crlf转换为lf,而检出时不转换Check代码时还是lf方式。因此在window操作系统下,不要使用这个设置。

(代码在windows提交,在Linux或者Mac系统或者Jenkins上专门打包为服务器使用,无需Git在push时把CRLF转换成LF,pull时不转换)

http://git config core.autocrlf false_core.autocrlf=false_江南风雨2013的博客-CSDN博客

http://git配置中的core.autocrlf和core.safecrlf_AlbertS的博客-CSDN博客

http://IDEA和GIT关于文件中LF和CRLF问题 - 百度文库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值