1、使用git init
创建本地仓库(会在当前文件夹生成.git文件夹,本文件夹中所有文件都可以上传)
2、编辑项目,使用git add .
增加本地所有文件(自动过滤增加过的文件,可以使用文件名代替.,只新增特定文件到暂存区,当然还可以排除某些文件,排除方法后面再说)
git add -A .或者git add --all .会将删除的文件去掉再增加
3、使用commit提交暂存区文件到本地仓库 4、使用git push将本地仓库推送到远程仓库 B、GitLab中已有上传过的项目 1、使用git clone从远程仓库复制项目,或者使用pull从远程取回某个分支。
2、编辑项目,提交到暂存区,使用git add .
增加本地所有文件(自动过滤增加过的文件,可以使用文件名代替.,只新增特定文件到暂存区,当然还可以排除某些文件,排除方法后面再说)
3、使用commit提交暂存区文件到本地仓库 4、使用git push将本地仓库推送到远程仓库 git命令详解: 一、配置用户信息git config --global user.name "beatfan.hu"
git config --global user.email "beatfan.hu@xxxx.com"
二、设置远程仓库别名
#网址太长,后面不想用网址,可以使用remote命令来设置远程别名,origin则代表网址
git remote add origin http://192.168.10.222:8888/ControlBD/ControlBD_Microchip.git
三、初始化本地仓库 git init 四、新增文件到暂存区
git add filename (若filename替换为. 表示所有文件,自动过滤添加过的文件)
注意:git跨平台开发时,回车换行符有问题,所以,git add filename 时会提示
warning: LF will be replaced by CRLF
……
The file will haveits original line endings in your working directory.
Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF:
#checkin时将crlf转化为lf,checkout时将lf转化回crlf
$ git config --global core.autocrlf true
input #提交时把CRLF转换成LF,签出时不转换回crlf
$ git config –global core.autocrlf input
#取消转化功能,适合仅在windows下开发
$ git config --global core.autocrlf false
五、过滤文件 1、在仓库文件夹中建.gitignore文件,.gitignore本身会被上传,内容为: *.zip *.rar filename.xxx 2、在.git/inof/exclude中添加内容,格式与.gitignore相似,不过本身不会被上传 六、提交暂存区到本地仓库当前分支
git commit -m "注释"
若要查看提交历史,并且每个commit仅一行显示,git log--pretty=oneline
七、比较差异 # 工作区与暂存区的差异
git diff
#工作区与本地仓库特定版本的差异,HEAD~1表示当前版本,HEAD~2表示上一版本,也可以使用commit_id
git diff HEAD~n
八、切换分支
git checkout branchName
#不写默认为master
九、创建分支,并切换到新分支
git checkout -b branchName
十、列出所有分支
git branch #列出本地所有分支
git branch -r #列出远程所有分支 git branch -a #列出本地和远程所有分支 十一、删除修改分支git branch -m oldname newname #重命名分支,若newname已存在,可使用-M强制重命名
git branch -d branchName #删除branchName分支,-D强制删除
git branch -d -r branchName #删除远程branchName分支
十二、从特定分支中取回数据到工作区 #从特定提交ID中取回所有数据
git checkout commit_ID #会取回这个commit_id的数据,并创建一个临时匿名分支,此时如果不做commit,切换到其他分支,那么这个分支就会被销毁,即便是提交,你也只能从这次提交的id中取回,无法显式找到匿名的分支。
git checkout master filename #从master分支取回特定文件,. 表示所有文件。
git checkout commit_ID filename #取回特定提交id的文件,将filename替换为. 则表示取回所有文件
git checkout . #危险命令,从暂存区中取回所有数据,覆盖工作区
十三、从远程仓库下载
git clone http://xxx.xxx.xxx.xxx/beatfan.hu/bsp_pic32mzef.git #最后面不添加目录默认下载到当前目录
十四、推送到远程仓库
git push remoteUrl/别名 本地分支名:远程分支名 #省略本地分支名和: 则推送当前分支,git push remoteUrl master,注意 : 不能单独有,相当于空分支替代远程分支,即删除
git push remoteUrl :master = git push remoteUrl --delete master #删除远程master
git push remoteUrl master #将当前分支推送到远程master分支
git push --all remoteUrl #将本地所有分支提交到remoteUrl
十五、从远程仓库取回数据
操作与push相似,参考push
git pull remoteUrl/别名 远程分支名:本地分支名
十六、查看本地仓库及工作区状态git status #查看仓库及工作区状态,会显示未添加的文件,及更新信息
十七、查看日志git log #查看当前分支commit到本地仓库的历史,加上 --pretty=oneline表示每个显示一行
git reflog # 查看所有分支commit到本地仓库中的历史,包含已经撤销的commit 十八、设置代理 #设置代理git config --global http.proxy http://192.168.10.209:3128
git config --global https.proxy http://192.168.10.209:3128
十九、移除代理
git config --global --unset http.proxy
git config --global --unset https.proxy
示例,批处理提交数据: @echo off @title git bat rem 临时添加git命令目录到path变量
set path=%path%;"C:\Program Files\Git\cmd\"
set remoteUrl="http://192.168.10.222:8888/ControlBD/ControlBD_Microchip.git"
git config --global core.autocrlf false
git add -v . git commit -m "test add"git config --global user.name "beatfan.hu"
git config --global user.email "beatfan.hu@xxxx.com"
git push %remoteUrl% master:master