【Git】Git客户端使用

    xiaoxiao2021-04-16  36

    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

    转载请注明原文地址: https://ju.6miu.com/read-673110.html

    最新回复(0)