本文简单介绍了Linux系统中,Git的所有操作以及在EDA软件设计中经常使用的指令(加粗)
- 初始化步骤:
1. git init (初始化): 初始化本地仓库,会自动在当前目录下生成一个.git目录
- git init directory : 指定本地路径directory目录作为git仓库
1. git clone (克隆 初始化):将现有Git仓库中的项目拷贝下来(自动生成.git目录)
- git clone <repo> : 将repo仓库的代码克隆到当前路径中
- git clone <repo> directory : 克隆到指定的目录directory中
<repo> : Git 仓库 directory:本地目录
- 2022/10/26更新:
git clone仓库所有分支步骤:
- git clone xxxxxx.git //克隆原始仓库,分支默认是master主分支,若想克隆特定分支,使用 git clone -b 分支名 xxxxxx.git
- git branch -a //查看所有远程分支
- git checkout -b 本地分支名 origin/远程分支名 //切换到对应分支,且checkout远程分支
- git submodule update --init --recursive //更新所有子仓库
- git pull //下拉代码
- 2023/02/25更新:
git添加子模块:
- git submodule add xxxxxx.git //添加子模块到本地,如需指定子模块位置,使用git submodule add xxxxxx.git 具体位置
git删除子模块
- git rm --cached xxxxxx // 删除子模块缓存
- rm -rf xxxxxx //删除子模块目录
- vim .gitmodules //删除.gitmodules中子模块对应的信息
- rm -rf .git/modules/xxxxxx //删除.git中的子模块目录
- vim .git/config //删除.git/config中子模块对应的信息
1. git config (配置信息):配置git信息
编辑 git 配置文件:
- git config -e # 针对当前仓库
- git config -e --global # 针对系统上所有仓库
设置提交代码时的用户信息:
- git config --global user.name "name"
git config --global user.email "email@xx.com"如果去掉 --global 参数只对当前仓库有效
- 基本操作(!!!重中之重!!!)
workspace:工作区
staging area:暂存区/缓存区
local repository:版本库或本地仓库
remote repository:远程仓库
常见flow:git pull / git fetch -> 修改 -> git status -> git add / git rm -> git commit -> git log -> git push
2.常见提交操作
git status 查看仓库当前的状态,显示有变更的文件
git diff 比较文件的不同,即暂存区和工作区的差异
git add 添加文件到暂存区
git rm 将文件从暂存区和工作区中删除
git commit 提交暂存区到本地仓库
2. 常见辅助操作:
git reset 回退版本
git mv 移动或重命名工作区文件git log 查看历史提交记录
git blame <file> 以列表形式查看指定文件的历史修改记录git remote 远程仓库操作
git fetch 从远程获取代码库
git pull 下载远程代码并合并
git push 上传远程代码并合并
- 2022/12/14更新:
Github将
密码凭证改为使用个人访问令牌(personal access token)
个人访问令牌:settings -> Developer settings -> personal access token -> Tokens(classic)创建,生成一串token,保存好,以后都看不到了。
git remote set-url origin https://<token>@github.com/
github的用户名/仓库名称然后可以正常的git push
- 版本控制操作(Git精髓)
3.分支操作
git branch <branchName> (创建分支命令) + git checkout <branchName>(切换到对应分支)
或git checkout -b <branchName> : 创建分支且切换到对应分支
git branch -d <branchName>:删除对应分支
3.合并分支操作
git merge <mergedBranch>:需要在合并的分支上,<mergedBranch>是被合并的分支(被删掉的),将<mergedBranch>合并进当前分支
- !合并时会产生冲突:需要git diff 查看冲突的位置,手工修改后,再进行merge
- 2023/08/03更新
如何更新GitHub Fork后的代码并与原始代码同步
1.使用以下命令,将更新的原始代码从主GitHub存储库中拉到我们的本地分支中,会将与Fork相比原始代码中的所有更改应用到本地主分支
git remote add upstream ropo.git //确认源项目地址 git fetch upstream //拉取源项目更改 git merge upstream/master //合并源项目的变更到fork后的项目
2.最后将本地主分支中最新的代码推送到Fork存储库:
git push origin master