Git常用指令

2023/05/08 Git 工程 文档 共 2446 字,约 7 分钟

一些在日常工程、科研中常用的Git命令。Git不应该只在工程项目中使用,一个好的算法工程师也需要熟练掌握版本控制。

带Token的git push


git remote set-url origin https://<your_token>@github.com/<USERNAME>/<REPO>.git

参考: https://blog.csdn.net/weixin_42161901/article/details/128462195

在一个新的机器上初始化git

# 安装git
apt-get update 
apt-get install git

# 新建ssh key
ssh-keygen -t rsa

# 配置username和email
git config --global user.name "username"
git config --global user.email "email"
git config --global user.password "password"  # 也许可以不用

# 尝试配置添加ssh
ssh-agent -s 
eval `ssh-agent -s` 
# 替换ssh key 
ssh-add ~/.ssh/id_rsa

git一般流程

// 1. 添加改动文件
git add [file]
git add --all

// 2. 提交到暂存区
git commit -m "Initial commit"

// 3. 如果没有设置远程仓库的话,设置一下
git remote add origin [repo_url]

// 4. 把本地改动push到远程仓库的master分支
git push -u origin master

// 其他常用指令

// 修改config文件
git config --global user.name "username"
git config --global user.email "email"
git config --global user.password "password"

// 查看git状态
git status


git强制pull

git fetch --all 
git reset --hard origin/master
git pull

git分支操作

一个典型的工作流: image.png

1.在master分支下创建dev本地分支

git branch 新分支名称

2.把当前本地分支切换成新建的dev本地分支

git checkout 新分支名称

3.将本地dev分支推送到远程

git push --set-upstream origin 新分支名称

4.检测

git branch -a

切换分支直接输入下面指令就可以,代码会自动更新到新分支,无需pull

git checkout 新分支名称

git 修改分支名称

git branch -m 旧名字 新名字

git 克隆指定branch或者tags

git clone --branch(或者-b) [tags标签][git地址]

git删除指定分支

# 删除本地分支
git branch -d(--delete) xxx
# 删除远程分支
git push origin --delete xxx

将A分支文件添加到B分支

将develop分支的某文件添加到master分支

# 先切换到目标分支
git checkout master

# 将目标文件/目录添加到当前分支
git checkout develop file.txt

# 即,实现了将develop分支中的file.txt文件添加到master分支的操作

项目中requirements.txt中直接安装github中的项目无法安装

参考链接: https://www.bilibili.com/read/cv23517358

使用git@github.com:代替 https://github.com/

git config --global url."git@github.com:".insteadOf

Git reset操作

# 取消本次提交(但不能取消第一次提交)
git reset head ~ --soft

# head
head~    # 代表上一次提交
head~2    # 代表倒数第二次提交

Git remote操作

# 添加远程仓库
git remote add xxx

# 修改远程仓库名称
git remote rename old_name new_name

soft和hard的区别

--soft代表只撤销commit操作,但不会影响再之前的git add操作,即不影响文件的暂存状态 --hard不仅撤销commit操作,还会影响之前的git add操作,相当于彻底回到了上一个版本,从上个版本到目前为止所有的修改都会丢失。

Git stash操作

贮藏功能

适用场景:master分支未完成,但需要切换develop分支时。此时直接git checkout是无法切换过去的。因此,需要用到git stash命令

# 欲切换分支但不想commit时,先stash一下
git stash

# 然后,切换分支
git checkout develop

# 修改后,返回当前分支
git checkout master

# 恢复存储
git stash apply

# 支持多次存储
git stash list

# 查看存储列表,可以看到多次stash的结果
# stash@{0} -> 最后一次存储的结果
# stash@{2} -> 第一次存储的结果

# 恢复第一次存储的结果
git stash apply stash@{2}

# 恢复最后一次存储的结果,有两种方法
git stash apply stash@{0}

# 使用pop方法,但会在恢复后,从stash中删除最后一次储存的结果,即不存在stash@{2}
git stash pop

# 删除储存结果
git stash drop stash@{0}

Git 删除Github History

使用git log查看提交记录,Github会为每一次commit操作生成哈希值,用这个哈希值来记录你的提交记录。

定位误操作的那一个版本,取得其前一个版本的哈希值xxxxxx

使用git reset —-hard xxxxxx将当前HEAD重制到这个版本

使用git push --force origin HEAD

文档信息

Search

    Table of Contents