Git基本操作

克隆仓库

  • 克隆某个仓库 : git clone {仓库地址}

  • 克隆指定分支 : git clone -b {分支} {仓库地址}

配置全局用户名和邮箱

电脑第一次安装git的话,必须要先配置一下全局用户名和邮箱

git config --global user.name "输入用户名"
git config --global user.email "输入邮箱"

配置core.autolf

CRLF(Carriage-Return Line-Feed: 回车换行)LF(line feed: 换行)表示系统换行符;

CRLF符号表示为: \r\n, LF符号表示为\n;

Windows中的换行符风格为CRLF, Unix/OSX中换行符风格为LF;

core.autolf可配置为:

  • true: windows中这是默认值; 此时添加文件到git时, 会自动将CRLF变为LF; 迁出(check)操作时, 会自动将LF变为
  • false: 此时git不会对换行符做任何转换操作
  • input: 提交时将CRLF变为LF; 迁出(check)操作时不做转换操作

git config --global core.autocrlf input

初始化git仓库

把当前目录初始化成git仓库: git init

查看状态

git status
1
git status -s
2

提交更改

git commit -m 'Add files.'
git commit -m 'Modify [file].' -a

删除commit

经常commit完之后发现又有地方要重新修改(捂脸), 很长一段时间我都会为了这一点小修改重新commit, 导致有很多commit注释重复的commit; 但是其实可以在不改变当前代码的情况下删除上一次的commit的, 使用下面的指令即可
git reset --soft HEAD^

--soft

不删除工作空间改动代码,撤销commit,不撤销git add;

--hard

删除工作空间改动代码,撤销commit,撤销git add;
注意完成这个操作后,工作空间就恢复到了上一次的commit状态, 会丢失当前的代码, 要谨慎;

回退更改/回退版本

git reset --hard HEAD^
3

查看已提交的更改

git log
4
git log --pretty=oneline
5
git show
6
查看没有push到远程仓库的commit
git cherry -v
7

添加更改

使用通配符同时添加所有的更改
git add '*.txt'
添加指定的多个文件
git add [file1] [file2] ...

分支操作

  • 列出本地分支
    git branch
    8

  • 新建一个名为Fav的分支
    git branch Fav
    9

  • 切换到Fav分支
    当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
    git checkout Fav
    10

  • 新建mahapp分支并切换到该分支
    20

  • 删除Fav分支
    要先切换到其他分支才能删除Fav分支
    git checkout master
    删除Fav分支
    git branch -d Fav
    11

  • 合并分支并解决冲突
    新建两个分支:fav mahapp
    分别切换到三个分支下修改Readme.md文件的内容,查看结果如下.
    12
    然后合并fav分支到master(当前所在分支):git merge fav
    13
    提示Readme.md文件产生了冲突,可以通过git merge --abort取消刚才的合并操作;也可以手动解决冲突然后继续提交.
    修改冲突的Readme.md文件,修改前:
    14
    修改后:
    15
    此时冲突已经被我们手动解决了, 我们还需要使用git add 命令来告诉git冲突已经被我们解决了.
    16
    冲突解决,完.
    git log 中也可以看到合并的记录.

删除远程分支

git push origin --delete <remote branch>

添加远程仓库

git remote add origin https://github.com/try-git/try_git.git

列出远程仓库git remote -v
17

远程推送

git push -u origin master
可能会需要输入用户名和密码
18

git代理

查看git代理
git config --global http.proxy
git config --global https.proxy
19
设置git代理

git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080

取消(删除)代理设置,有时候git push会出现无法push的情况,可能就是代理有问题,把代理删了可能可以解决问题,如果开了FQ软件,可以设置一个代理,可能会提高push的速度.
git config --global --unset http(s?).proxy

git tag

官方文档

Git中有一个打标签的功能, 可以给某一次commit打一个标签, 以示重要. 这个功能一般用来发布版本, 比如某个软件基本功能都开发忘了, 就可以打一个标签 v1.0.0, 然后发布, 结合github使用体验很棒.

相关指令

  • 列出所有标签
    git tag

  • 查找特定的标签
    git tag -l v1.0.0

  • 创建标签
    git tag -a v1.4 -m "my version 1.4"

windows下git提示文件名过长

git有可以创建4096长度的文件名,然而在windows最多是260,因为git用了旧版本的windows api, 所以在windows下, git可能会提示文件名过长;

解决:

git config --global core.longpaths true

解决windows下git status中文显示数字串问题

image

执行 git config --global core.quotepath false 即可

git-status-chinese-miscode-2

git pull时遇到unable to update local ref错误

遇到这个错误的话, 先执行下git gc --prune=now

然后在执行git pull即可

posted @ 2021-03-09 20:37  Laggage  阅读(52)  评论(0编辑  收藏  举报