【Git】Git客户端使用

Git的Gui不怎么好用,建议使用Git Bash命令。

Git的结构如下:
本地工作区 - 本地暂存区 - 本地仓库 - 远程仓库

仓库中有分支,每个分支记录了不同的commit信息,取决于用户commit到哪个分支。一般来讲,不是大型项目,一般都只使用一个master分支。

提交数据流程如下:

初次使用,需要先配置用户信息,这要用到git config。
A、GitLab中是空项目(在网页中创建了项目)
空项目意味着没有数据,那么只能从本地上传,而不能先从GitLab中clone下来(事实上clone也可以,不过没有意义),空项目与非空项目仅第一步操作不同。

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

posted on 2017-04-14 11:02  Beatfan  阅读(55)  评论(0)    收藏  举报

导航