一.提交代码命令如下:
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-editgit 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命令并不支持递归选项,因此借用find
和xargs
实现批量处理
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博客