课程表

Git课程

工具箱
速查手册

Git 常见问题解决

当前位置:免费教程 » 软件/图像 » Git

1、Git客户端修改文件名大小写后,如何提交到远端?

背景信息

Git修改了文件名大小写后,远端将不识别对应文件。

例如:远端服务器“AppTest.java”,本地重命名后“apptest.java”,提交后远端还是“AppTest.java”。

操作步骤

请按顺序执行如下命令:

git mv --force AppTest.java apptest.java git add apptest.java git commit –m "rename" git push origin XXX(分支)


2、Git客户端怎么设置系统的换行符转换?

背景信息

由于操作系统不兼容的缘故,在跨平台上查看文本文件会因为换行符不同而造成障碍,使用版本控制系统也同样存在换行符的问题。

操作步骤

(可选)默认Git不对core.autocrlf进行配置,请设置如下值来辨别并对文本文件执行换行符转换:

Windows系统

设置配置变量“core.autocrlf”为“true”,相当于在版本库中所有的文本文件都使用“LF”作为换行符,而检出到工作区无论是什么操作系统都使用CRLF作为换行符。

Linux系统

设置配置变量“core.autocrlf”为“input”,相当于在新增入库的文本文件的换行符自动转换为“LF”,如果将文件从版本库检出到工作区则不进行文件转换。

通过配置变量core.autocrlf来开启文本文件换行符转换的功能:

git config --global core.autocrlf true


3、Git客户端提交中文名文件出现乱码怎么办?

背景信息

在Git客户端中,提交文件时,如果文件名是中文,会出现乱码。

操作步骤

避免中文文件名出现乱码的几种提交场景操作方法如下表所示。

表1 中文名文件提交场景

场景

操作方法

在Git客户端中,使用git add添加要提交的文件时,如果文件名是中文,会显示形如“256\346\200\273\347\273\223.png”的乱码。

在bash提示符下输入:

git config --global core.quotepath false

使用git log提交显示中文Log乱码。

  1. 设置git gui的界面编码:

    git config --global gui.encoding utf-8
  2. 设置commit log提交时使用“utf-8”编码,可避免服务器上乱码,同时与Linux上的提交保持一致:

    git config --global i18n.commitencoding utf-8
  3. 使得在$ git log时将“utf-8”编码转换成“gbk”编码,解决Msys bash中git log乱码:

    git config --global i18n.logoutputencoding gbk
  4. 使得git log可以正常显示中文(配合“i18n.logoutputencoding” = “gbk”),在“/etc/profile”中添加:

    export LESSCHARSET=utf-8

在MsysGit自带的bash中,使用ls命令查看中文文件名乱码,cygwin没有该问题。

  1. 使用ls --show-control-chars命令来强制使用控制台字符编码显示文件名,即可查看中文文件名。

    为了方便使用,可以编辑“/etc/git-completion.bash”,新增一行:

    alias ls="ls --show-control-chars"
  2. 重启Git客户端即可生效。


4、Git客户端如何提交隐藏文件?

请使用git add .。不能使用git add *,使用*会忽略隐藏文件。

文件和文件夹名称中不能包含特殊字符。


5、Git客户端如何提交已被更改的文件?

背景信息

Git提交代码时,如果文件被修改了,会出现如下图所示信息。


操作步骤

拉取远端最新代码。

git pull origin XXX(分支)

正确修改并提交代码。

git push origin XXX(分支)


6、Git常用命令有哪些?

背景信息

  • Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目,能有效高速地处理从很小到非常大的项目版本管理。

  • 通过Git可以从服务器克隆完整的Git仓库(包括代码和版本信息)到单机上,然后根据不同开发目的灵活创建分支、修改代码、提交代码、合并分支等。

常用命令

Git常用命令的功能、格式、参数说明以及使用示例如下所示。

命令

功能

格式

参数说明

使用实例

ssh–keygen –t rsa

生成密钥

ssh–keygen –t rsa –C [email]

email:邮箱地址

在C盘.ssh文件夹下获取密钥文件“id_rsa.pub”

ssh–keygen –t rsa –C "devcloud_key01@XXX.com"

git branch

新建分支。

git branch [new branchname]

new branchname:新的分支名

新建分支:

git branch newbranch

git branch –D

删除分支

git branch –D [new branchname]

new branchname:新的分支名

删除本地分支:

git branch –D newbranch

删除服务器仓库分支

git branch –rd origin/newbranch

同步远端已删除的分支

git remote prune origin

git add

添加文件到暂存区。

git add [filename]

filename:文件名

添加一个文件到暂缓区:

git add filename

添加所有修改的和新增的文件到暂缓区:

git add .

git rm

删除本地目录或文件。

git rm [filename]

filename:文件名或目录名

删除文件:

git rm filename

git clone

克隆远程仓库。

git clone [VersionAddress]

VersionAddress:版本库的网址。

克隆jQuery的版本库:

git clone https://github.com/jquery/jquery.git

该命令会在本地主机生成一个目录,与远程主机的版本库同名。

git pull

把远程仓库的分支pull到本地,再与本地的指定分支合并。

git pull [RemoteHostname] [RemoteBranchname]:[LocalBranchname]

-

取回“origin”主机的“next”分支,与本地的“master”分支合并:

git pull origin next:master

git diff

文件、分支、目录或版本的比较。

git diff

-

当前与“master”分支的比较:

git diff master

git commit

文件提交。

git commit

-

添加提交信息:

git commit –m "commit message"

git push

推送文件到远程仓库。

git push [RemoteHostname] [LocalBranchname] [RemoteBranchname]

-

如果省略远程分支名,则表示将本地分支推送与之存在“追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建:

git push origin master

上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。

git merge

合并分支。

git merge [branch]

branch:分支名

假设当前分支为“develop”,将master主分支之后的最新提交merge到当前的develop分支上:

git merge master

git checkout

切换分支。

git checkout [branchname]

branchname:分支名

切换到master分支:

git checkout master

git log

列出日志信息。

git log

-

列出所有的log:

git log –-all

git status

查看状态输出。

git status

-

git status

git grep

查找字符串。

git grep

-

查找是否有“hello”字符串:

git grep "hello"

git show

显示内容或修改的内容。

git show

-

  • git show v1

    显示“tag v1”的修改内容

  • git show HEAD

    显示当前版本的修改文件

  • git show HEAD^

    显示前一版本所有的修改文件

  • git show HEAD~4

    显示前4版本的修改文件

git stash

暂存区。

git stash

-

  • git stash

    用于保存和恢复工作进度

  • git stash list

    列出暂存区的文件

  • git stash pop

    取出最新的一笔,并移除

  • git stash apply

    取出但不移除

  • git stash clear

    清除暂存区

git ls-files

查看文件。

git ls-files

-

  • git ls-files –d

    查看已经删除的文件

  • git ls-files –d |xargs git checkout

    将已删除的文件还原

git remote

操作远程。

git remote

-

  • git push origin master:newbranch

    增加远程仓库的分支

  • git remote add newbranch

    增加远程仓库的分支

  • git remote show

    列出现在远程有多少版本库

  • git remote rm newbranch

    删除远程仓库的新分支

  • git remote update

    更新远程所有版本的分支


转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳