无套路,通俗易懂,拿到就能用,还等什么,拿来吧你
Git 工具在Linux 上是集成的,只要cmd命令行执行 sudo apt-get install git-core 命令即可。
Windows 系统需要到 https://git-for-windows.github.io/ 进行下载即可,页面如下(直接按download进行下载即可):
创建提交用户名和邮箱
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系统
喜欢请点赞+收藏 最近在打榜