Git常用指令

整理:
GIT知识

.Git配置分为三个方面:系统配置、全局(用户)配置、仓库配置

系统配置:--system 会在/etc下生成.gitconfig文件
用户配置:--global 会在用户家目录下生成.gitconfig文件
仓库配置:--local 会在git仓库目录下生成.gitconfig文件
git config --system --list [优先级最低]
git config --global --list [优先级次之]
git config --local --list [优先级最高]


git config --global --list   ##这些配置都在C:\Users\****\.gitconfig
git config user.email  ##查看邮箱
git config user.name  ##查看用户名
git config --list

git config --global core.longpaths true  ##当文件太长需要拉的时候,会报错
git config --global core.autocrlf input ##避免提交会变成中文换行符;提交时会变成LF格式
git config --global user.pass P14************z ##添加token,从git web界面生成的
git config --global credential.helper store   ##允许git记录用户名和密码
git config --global user.name "csren1"  ##修改用户名
git config --global user.email "Your_email" ##修改用户邮箱
git config --global color.branch.upstream "blue bold" ##设置上游分支是蓝色

##若要设置默认的行尾符为Unix格式,需要添加以下两条配置:
使用git pull命令从远程仓库获取最新的更新时,Git会自动将Windows风格的CRLF(Carriage Return + Line Feed)转换为Unix风格的LF
git config --global core.autocrlf input
git config --global core.eol lf

CRLF=`\r\n` carriage return line feed,回车换行,windows常用。
LF=`\n`;line feed,换行,Linux常用。
###core.autocrlf
AutoCRLF
#提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true

#提交时转换为LF,检出时不转换
git config --global core.autocrlf input

#提交检出均不转换
git config --global core.autocrlf false


修改分支名字:
git branch -m <new_branch_name> 该命令将更改当前分支的名称为新的分支名称。 如果要更改其他分支的名称,则需要首先切换到该分支
git push origin :old-branch new-branch  删除老分支,推送新分支



当git commimt 提交信息的时候,写错了需要修改
git commit --amend --only 然后编辑或者git commit --amend --only -m "****"

一份新修改(或者创建的)文件处于 – 工作区。
当 git add 之后, 文件会从工作区移动到暂存区。
当 git commit 之后, 文件会从暂存区移动到本地仓库。
当 git push 之后,文件会从 本地仓库 移动到 远程仓库。


回退

  • a. git 回退工作区内容到编辑之前的状态: git checkout -- file_name
  • b.如果已经git add 提交到了缓存区想要修改:
    第1步:将暂存区的代码回滚到工作区: $ git reset HEAD
    第2步:将工作区的代码回滚: $ git checkout -- <file>
  • c.文件在本地仓库进行回退:回滚到工作区(相当于撤销git commit及git add操作)并且丢弃修改内容
    git log/git reflog 然后git reset --hard commit_id (这里是 8c12)
  • d.文件已经在远程仓库中
    git log或者git reflog
    git log 然后git reset --hard commit_id (这里是 8c12)
    加上 -f 来强制推:git push - f
git init  ##新建一个文件夹,执行完之后,就会创建一个本地仓库,并在当前文件夹下创建一个.git文件夹.
git log --oneline   #打印更简单化
git log --oneline --decorate  在哪个分支上操作的
git log -2  查看最近的两条操作日志
git log branchname ###可以显示特定分支的log
git status:查看仓库状态
git checkout "target branch"  ##切换分支
git checkout -b linux #创建分支并切换到该分支
git tag  # 查看tag标签列表
git branch -r ##查看远程分支
git branch -d csren  ##删除分支csren
git tag -d v1.0   ##删除标签
git tag -a v1.0  ## -a参数会允许你添加一些信息,即make an annotated tag.
##当你运行git tag -a命令的时候,Git会打开一个编辑器让你输入tag信息.
 我们可以利用commit SHA来给一个过去的提交打tag:
git tag -a v0.9 XXXX

git diff "xxx.txt"  ##工作区和暂存区之间差异对比
git diff --cached(--staged) "xxx.txt"  ##暂存区和版本库之间差异对比
git diff master  ##工作区和版本库之间差异对比
git log --oneline  ###查看提交历史
git status -s ##查看文件状态,如果修改了README.md
git status -s: -s表示short, -s的输出标记会有两列,第一列是对staging区域而言,第二列是对working目录而言


#####输出:
 M README.md


 
git remote -v: 查看远程库信息
 如果你clone一个project,Git会自动将原来的url添加进来,别名就叫做:origin.
git remote rm origin(删除关联的origin的远程库)
git remote add [alias] [url]: 添加一个新的remote repo.
git remote rm [alias]: 删除一个存在的remote alias.
git remote rename [old-alias] [new-alias]: 重命名.
git remote set-url [alias] [url]:更新url. 可以加上—push和fetch参数,为同一个别名set不同的存取地址.
git checkout a1 #将暂存区中文件a1覆盖工作目录区中的a1内容


$ git checkout master  #切换到master分支
$ git merge dev_CS     #将dev_CS分支的内容合并到master分支```


####如果工作区已经修改了,想放弃修改
```bash
git restore file_name  ##方式一
########
git restore README.md  ##撤回某一个文件
git restore .          ##撤回全部修改的文件
########
git checkout -- file_name ##方式二

#####撤销暂存区文件更改:执行完<git add>

git restore --staged file_name ##取消git add file_name的操作
git restore --staged .         ##取消git add .的操作

git diff --staged "xxx.txt"  ##撤销完之后,再对比暂存区应该和本地仓库应该就一致了

#####文件对比

工作区和暂存区之间差异对比
$ git diff "xxx.txt"

暂存区和版本库之间差异对比
$ git diff --staged "xxx.txt"  ###方式一
$ git diff --cached "xxx.txt"  ###方式二
工作区和版本库之间差异对比
$ git diff master

HEAD 是最新版本,HEAD^ 是上一个版本
$ git reset --hard HEAD^ 

######更改分支名字

git checkout <要修改分支的名字>   ##先切换到要修改的分支
git branch -m <new_branch_name>  ##更改当前分支的名称为新的分支名称
git push origin :old-branch new-branch  删除老分支,推送新分支

#####详细操作

指定分支下载:要clone指定分支是 git clone -b 指定分支名称  项目ssh地址
[root@hadoop101 ~]#mkdir GIT_Code
[root@hadoop101 ~]#cd GIT_Code
[root@hadoop101 ~]#git init
[root@hadoop101 ~]#git clone -b dev https://或者ssh 
[root@hadoop101 ~]#git pull   ##先切换到dev分支下
[root@hadoop101 ~]#git merge dev ##切换到DEV_CS分支后执行该命令;#将dev分支下的内容合并到dev_CS分支
[root@hadoop101 ~]#git add .  ##添加文件
[root@hadoop101 ~]#git commit "***"
[root@hadoop101 ~]#git push



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值