一些在日常工程、科研中常用的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分支操作
一个典型的工作流:
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
文档信息
- 本文作者:焦逸凡
- 本文链接:https://ailovejinx.github.io/2023/05/08/blog-git/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)