git操作


一、流程

各命令使用场景图
download 2.41.0.3
在这里插入图片描述

二、常用操作

1. git暂存

git stash //添加追踪文件已暂存区,不包括未追踪和忽略文件
git stash save "message" //推荐写上message
git pop //从堆栈中取最近一次暂存,并且删除暂存
git stash apply //同上,但并不删除暂存数据
git stash apply stash@{0} //同上,可指定恢复其它暂存
git stash list //查看所有暂存
git stash drop stash@{0} //删除指定暂存
git stash clear //清空所有暂存
git stash show //查看diff,同git stash show stash@{0}
git stash show -p //查看详细diff,同git stash show stash@{0} -p
git stash branch newBranch //暂存变分支
git stash -u //暂存untracked文件
git stash -a //暂存所有文件

2. git分支

git branch -a #查看所有分支
git checkout -b "release" "origin/release" #checkout远程分支
git branch -m old_name new_name #重命名本地分支
git push origin :old_branch #删除远程分支
git push origin new_branch #将本地新分支推送至远程
git checkout -b new_br #创建并切换至分支new_br
git checkout master #切换至master分支
git merge new_br #将new_br分支合并至当前master分支
git branch -d new_br #将合并完成后不用的分支删除
git mergetool #合并冲突时可用的工具
git add #冲突解决后提交
git push origin :serverfix #删除远程分支
git rebase master myfix #将myfix分支在master分支上重演,相当于清除了myfix分支以前的提交历史,所以不能在已发布对象上操作,以防止别人依赖这个分支。

3. 打标签

git tag -a v1.0 -m 'base function finished.'
git tag -a v1.2 9fceb02 //给以往版本加上标签
git tag //查看已有标签
git show v1.0 //查看v1.0信息
git push origin v1.0 //推送本地标签至远端
git push origin --tags //推送本地所有标签至远端​

4. 取消文件追踪

git rm --cached readme.txt  删除指定文件的跟踪,保留本地文件。
git rm --f readme.txt     删除指定文件的跟踪,并且删除本地文件。​

5. 彻底删除历史提交记录

git log 查看要回退到哪个版本,记下code:712ec235d471d7c3ae3d397dbd254063151e5bd9
git reset --hard 712ec235d471d7c3ae3d397dbd254063151e5bd9
git push origin HEAD --force​

6. export导出文件

git archive --format zip -o site-$(git log --pretty=format:"%h" -1).zip HEAD​

7. 只clone部分文件夹

# 初始化空库
mkdir devops
cd devops/
git init #初始化空库
# 拉取remote的all objects信息
git remote add -f origin https://gitee.com/user/myPython.git
# 开启sparse clone并设置需要pull的目录 devlops
git config core.sparsecheckout true #开启sparse clone
echo "devops" >> .git/info/sparse-checkout #设置需要pull的目录,*表示所有,!表示匹配相反的
more .git/info/sparse-checkout
# 将origin 端,由第三步(文件 .git/info/sparse-checkout)设置的目录下的文件pull到本地
git pull origin master
git branch --set-upstream-to=origin/master master

# 问题提示:SSL certificate problem: self signed certificate
git config --global http.sslVerify false​

8. git初始化

# SSH-KEY(4096长度):
ssh-keygen -t rsa -C "user@163.com" -b 4096
cat ~/.ssh/id_rsa.pub​

9. 全局设置

git config --global user.name "xxx"
git config --global user.email "user@163.com"
get config --list​

10. git拉取

创建

git clone https://github.com/user/myRepo.git
cd testRepo
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master​

文件夹已存在

cd existing_folder
git init
git remote add origin https://gitee.com/user/myPython.git
git add .
git commit -m "Initial commit"
git push -u origin master​

已存在的 Git 版本库

cd existing_repo
git remote rename origin old-origin
git remote add origin https://github.com/user/myRepo.git
git push -u origin --all
git push -u origin --tags

11. git push时免密

linux

vim ~/.git-credentials
https://{username}:{password}@gitee.com
git config --global credential.helper store
打开~/.gitconfig文件,会发现多了一项,然后再PULL输入一次以后就不用输入了:

[credential]
helper = store ​

windows

方法同上面,只是第一步创建git-credentials有点不同。在%HOME%目录中,一般为C:\users\Administrator,也可以是你自己创建的系统用户名目录,
反正都在C:\users\中。文件名为.git-credentials,由于在Window中不允许直接创建以"."开头的文件,所以需要借助git bash进行,打开git bash客户端,
进行%HOME%目录,然后用touch创建文件 .git-credentials, 然后后面的操作同上面。​​

12. 设置别名

git config --global -e
#写入如下内容:
[alias]
    st = status
    co = checkout
    br = branch
    mg = merge
    ci = commit 
    md = commit --amend
    dt = difftool
    mt = mergetool
    last = log -1 HEAD
    cf = config
    line = log --oneline
    latest = for-each-ref --sort=-committerdate --format='%(committerdate:short) %(refname:short) [%(committername)]'

    ls = log --pretty=format:\"%C(yellow)%h %C(blue)%ad %C(red)%d %C(reset)%s %C(green)[%cn]\" --decorate --date=short
    hist = log --pretty=format:\"%C(yellow)%h %C(red)%d %C(reset)%s %C(green)[%an] %C(blue)%ad\" --topo-order --graph --date=short
    type = cat-file -t
    dump = cat-file -p​

问题

  1. 出现error setting certificat verify locations异常,无法push origin。
git config --global http.sslcainfo "C:\Program Files\Git\usr\ssl\certs\ca-bundle.crt"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值