Git基本操作
- 克隆仓库
- 配置全局用户名和邮箱
- 配置core.autolf
- 初始化git仓库
- 查看状态
- 提交更改
- 删除commit
- 回退更改/回退版本
- 查看已提交的更改
- 添加更改
- 分支操作
- 添加远程仓库
- 远程推送
- git代理
- git tag
- windows下git提示文件名过长
- 解决windows下git status中文显示数字串问题
- git pull时遇到- unable to update local ref错误
克隆仓库
- 
克隆某个仓库 : 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

git status -s

提交更改
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^

查看已提交的更改
git log

git log --pretty=oneline

git show

查看没有push到远程仓库的commit
git cherry -v

添加更改
使用通配符同时添加所有的更改
git add '*.txt'
添加指定的多个文件
git add [file1] [file2] ...
分支操作
- 
列出本地分支 
 git branch
  
- 
新建一个名为Fav的分支 
 git branch Fav
  
- 
切换到Fav分支 
 当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
 git checkout Fav
  
- 
新建mahapp分支并切换到该分支 
  
- 
删除Fav分支 
 要先切换到其他分支才能删除Fav分支
 git checkout master
 删除Fav分支
 git branch -d Fav
  
- 
合并分支并解决冲突 
 新建两个分支:fav mahapp
 分别切换到三个分支下修改Readme.md文件的内容,查看结果如下.
  
 然后合并fav分支到master(当前所在分支):git merge fav
  
 提示Readme.md文件产生了冲突,可以通过git merge --abort取消刚才的合并操作;也可以手动解决冲突然后继续提交.
 修改冲突的Readme.md文件,修改前:
  
 修改后:
  
 此时冲突已经被我们手动解决了, 我们还需要使用git add命令来告诉git冲突已经被我们解决了.
  
 冲突解决,完.
 git log中也可以看到合并的记录.
删除远程分支
git push origin --delete <remote branch>
添加远程仓库
git remote add origin https://github.com/try-git/try_git.git
列出远程仓库git remote -v

远程推送
git push -u origin master
可能会需要输入用户名和密码

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

设置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中文显示数字串问题

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

git pull时遇到unable to update local ref错误
遇到这个错误的话, 先执行下git gc --prune=now
然后在执行git pull即可
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号