Git 基础操作

无套路,通俗易懂,拿到就能用,还等什么,拿来吧你

Git 工具在Linux 上是集成的,只要cmd命令行执行 sudo apt-get install git-core 命令即可。

Windows 系统需要到 https://git-for-windows.github.io/ 进行下载即可,页面如下(直接按download进行下载即可):

git工具下载

 创建提交用户名和邮箱

git config --global user.name "Tony"

git config --global user.email "tony@gmail.com"

创建本地创库、进入指定文件夹鼠标右键单击选中 Git Base Here 执行如下语句:

git init 

全部提交代码到本地仓库

git add .        需要先全部添加 ( 注意不要忽略 “ . ”)

git commit -m "First commit" 提交到本地  "" 双引号里面填写的是提交自己标注的日志信息

git diff   查看更改的内容

git status  查看更改了多少类

git checkout master      git merge version1.0        合并更改数据到分支

git branch version1.0  创建分支

git checout version1.0  切换分支

git clone 地址    下载远程项目到本地

git push origin master 同步到远程master分支上

git fetch origin/master 更新远程到本地

git pull origin master 更新到本地(自动对代码进行合并)

2020更新

git add .                       提交
git branch -a                查看已有分支
git checkout -b xxx      创建并切换
git checkout xxx          切换分支
git commit -m "xxx"     提交
git commit -s ''
git status -sb   查看是否存在未提交版本

2021

查看分支提交记录
git show brachhascode

查看当前提交更改

git --name-status 

转- Git log怎么查看分支提交过哪些文件_小妖666个人笔记-CSDN博客_git log 文件清单  这位靓仔写得不错

//以下命令用于清除服务器提交日志

***git reset --soft hasmapvalue   回退某个版本(并保留以添加数据)清除日志信息
git push -f  执行以上命令后强制将本地最新的代码替换 远程分支代码   (慎用   如果忘记操作上一步会导致数据替换出问题)

git reset --hard hasmapvalue   回退某个版本并清除以添加数据(慎用)

***git commit --amend 防止重复提交导致的新增日志 (用于二次增加数据)

git stash  将当前修改置入缓存区以便切换分支
git stash list 查看缓存区是否存在缓存数据
git pop 拉取缓存区数据并删除缓存区数据

关于git的拉取和推送以及合并

1.拉取服务端最新的git仓库代码

git fetch

2.推送代码到远程分支

git push origin HEAD:refs/for/xxx                      xxx 为分支名

3.如果代码有commit  尚没提交又再次修改了代码又不想新建新的commit 

可使用 git commit -amend 

按  i  输入

按esc 退出输入状态

再键入(注意英文的情况下键入否则无响应) :wq   即会保存退出

4.合并远程某个分支

git merge --no-ff origin/xxx                            xxx  为分支名

1.git log --pretty=oneline 简化git 日志输出
  等同于  git log --graph --pretty=oneline --abbrev-commit
  git log -1  显示最近一条git操作记录
  快捷配置输出log 
  git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
  
2.git reset --hard HEAD^           回退版本  这里指以HEAD为基点一个 ^ 回退一个版本 (仅是本地操作)
如果执行了2.命令窗没关闭后悔了怎么办
git reset --hard commit_id 这里的commit_id 指git log查到的提交所以想后悔那必须得记住你要后悔得commit_id (commit_id没必要写全,一般前五位就可以了)
还有一种办法可以查看历史commit_id  这个不需要你自己记忆 git reflog
3.git diff HEAD -- 文件名称        查看当前HEAD指向得分支得某个文件对应得更改  HEAD 也可以是commit_id
4.git checkout -- 文件名称         撤销某个文件
5.git reset HEAD 文件名称          回退git add 到暂存区的文件  git reset HEAD 回退全部的文件到git add前的状态

分支
1.git checkout -b 分支名 创建一个名为dev的分支
  等同 git switch -c 分支名
       git checkout -b 分支名 origin/分支名   创建本地分支同时创建远程分支
2.git branch             查看当前的分支
3.git merge 分支名       合入dev分支(本地) 这样查看不到合并过分支
  git merge --no-ff -m "merge with no-ff" dev   保留合入分支信息
4.git branch -d 分支名   删除分支(本地)
  git branch -D 分支名   强制删除分支(对于没有合并过的分支所需要的操作)
5.git switch 分支名      切换到某分支
*** 6.git cherry-pick commit_id -m 1将某个分支的某个提交移动到当前分支(场景避免相同bug 不同分支重复修改)


分支工作内容隐身
1.git stash            将工作区的改动移动到不可见空间,从而在没add的情况下切换分支
2.git stash list       查看不可见空间工作内容
3.git stash pop        将不可见空间的文件移出工作区该操作会自动删除暂存在不可见空间的工作内容
  等同 git stash apply 恢复对应的不可见空间存储列表  例如: git stash apply stash@{0}
       git stash drop  删除对应的不可见空间存储列表

高级
0. git remote add origin git@server-name:path/repo-name.git  关联一个远程仓库
   等同于 git remote add 远程仓库名  远程仓库地址               用于区分 origin  (适用于关联多个仓库的情况,一般很少使用)
   
   
1. git push -u origin master 将本地推送到远程并关联
2. git push origin master    关联过的仓库推送
3. git remote -v             查看远程仓库名称

抓取
1. git pull  同步远端数据需要手动解决一下冲突
   git pull  出错是因为没指定远端分支链接 git branch --set-upstream-to=origin/当前分支名 当前分支名

打tag
1. git tag v1.1 当前分支直接打(默认打在最新的commit上)
2. git tag      查看所有的分支列表
3. git tag v1.0 commit_id  在历史Commit上重新打上tag
4. git show v1.0 查看tag所处的commit 
5. git tag -a v0.1 -m "version 0.1 released" 1094adb  创建带说明的tag
6. git tag -d v0.1 删除一个tag
   如果tag已经推送到远程     
   执行   git tag -d v0.1
   再执行 git push origin :refs/tags/v0.9  
   
7. git push origin v1.0 推送一个tag到远程
   git push origin --tags 推送全部tag到远程

美化
1. git config --global color.ui true    命令区分颜色显示


忽略配置
1. .gitignore 本地仓库创建该文件
    填写规则
    *.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx

# 不对以下文件进行忽略
!.gitignore
!文件名称

2. git add -f 文件名称                强制添加已忽略的文件到远程仓库
3. git check-ignore -v 文件名称      查看某个文件是否被忽略

   
快捷指令配置
1. git config --global alias.st status  
   输入    git st 
   等同于  git status


危险命令
1.git remote rm origin       删除指令(解除了本地和远程的绑定关系)真实的删除需要登陆后台进行删除
  
本地git配置查看
当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:


远程仓库配置
1.sudo apt-get install git  安装git
2.sudo adduser git          创建git用户  一般安装了会自动创建一个git用户只要改一下密码就可以了
  passwd git   
  输入新密码
    
3.which git                         查看git安装的位置
4.id git                            查看git是否存在
5.sudo git init --bare 仓库名.git   创建git仓库
6.ll                                查看仓库拥有者(命令是两个小写的字母L)
7.chown -R git:git 仓库名.git       将git仓库 放入git分组
8.vim /etc/passwd                   设置禁止git用户登录shell  (vim使用自行百度)
  git:x:1001:1001:,,,:/home/git:/bin/bash
  改成
  git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell 
9.cd /etc/ssh                       配置公钥
  vim sshd_config
  找到如下相关字眼并设置如下
  RSAAuthentication yes 
  PubkeyAuthentication yes
  AuthorizedKeysFile .ssh/authorized_keys

  重启sshd服务
  sudo service sshd restaet
  
  找到仓库 创建.ssh文件

  把.ssh放入git用户组
  chown -R git:git .ssh 

  查看.ssh的用户组权限
   ll -a|grep .ssh 
  将公钥push到仓库( win公钥位置C:\Users\Lidev\.ssh)
    ssh git@服务器公网IP地址 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa_git.pub
  
    
   
10.相关权限
   chmod 700 .ssh
   chmod 600 authorized_keys

Windows   git  乱码处理办法

执行以下这一堆即可正常显示
$ git config --global core.quotepath false # 显示 status 编码

$ git config --global gui.encoding utf-8 # 图形界面编码

$ git config --global i18n.commit.encoding utf-8 # 提交信息编码

$ git config --global i18n.logoutputencoding utf-8 # 输出 log 编码

$ export LESSCHARSET=utf-8  或者  set LESSCHARSET=utf-8
export 适用于linux系统
set  适用于 Wind系统

喜欢请点赞+收藏   最近在打榜

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值