vsocde中使用git

vscode 常用功能

克隆远程代码 git clone xxx

同步远程库最新更新

git pull origin <branch-name>
# 其中,<branch-name>是你要拉取的分支的名称。通常是main或master,具体取决于项目的默认分支。
# 例如,如果要拉取main分支的更新,可以这样做:
git pull origin main

处理可能的冲突

在拉取更新过程中,如果你在本地也有修改,并且这些修改与远程仓库的更新存在冲突,Git会提示你处理冲突。通常,你需要手动合并冲突文件并提交解决后的更改。

  • Git会告诉你哪些文件有冲突,例如:
CONFLICT (content): Merge conflict in file.txt
Automatic merge failed; fix conflicts and then commit the result.
  • 打开冲突文件,手动编辑冲突部分,然后保存文件。
  • 在解决所有冲突后,使用以下命令提交合并后的更改:
git add <conflicted-file>
git commit

确认拉取结果
你可以使用以下命令来查看本地分支的最新提交,确认拉取操作是否成功:

git log --oneline

这将显示简化的提交历史,最近的提交应该包括你刚刚拉取的更新。

在VSCode中完成这些操作

除了在终端中,你还可以在VSCode的图形用户界面中完成拉取操作:

  1. 打开源代码管理视图:
    • 点击左侧活动栏中的源代码管理图标(看起来像一个叉和一个圆圈)。
  2. 拉取更改:
    • 点击顶部的…按钮,选择“Pull”(拉取)。
    • 或者:在“源代码管理”视图的顶部找到“拉取”按钮,然后点击它。
  3. 处理冲突(如果有):
    • 如果有冲突,VSCode会提示你打开冲突文件,并提供用户友好的界面来解决冲突。

其他基础准备工作

线上准备

注册
Github官网(用到邮箱:username@mail.com,设置了用户名:usename
新建项目
New repository.jpg
填好“项目名”和“项目描述”就成:(注意HTTPSSSH两个版本)
new_CSDN.jpg
线下配置

  1. 安装git 下载地址:https://git-scm.com/downloads
  2. 配置SSH KEY
    ssh-keygen -t rsa -b 4096 -C "username@mail.com" 遇到提示不断回车就行
  3. 找到生成的key
    cd ~/.ssh
  4. 找到id_rsa.pub这是你的RSA公钥,复制,然后打开网站:https://github.com/settings/ssh
  5. 选择newsshkey ,把你的公钥粘贴进去。
  6. 链接测试
    ssh -T git@github.com 确认信息并键入 yes.
  7. 设置全局变量 (可以省略)
    git config --global user.name "你在Git上注册的用户名(usename)"
    git config --global user.email "你在Git上注册的邮箱(username@mail.com)"
    本地同步项目创建
    (接着上图)
    new_SSH
    按其上的步骤操作:
  • 在本地建立一个文件夹,名为你的项目名
  • 在里面创建一个README.md文件
  • 右键该文件夹(或者按住Shift+右键),选中git Bash,依次输入

echo “# CSDN” >> README.md-------------往README.md写入"# CSDN"
git init------------本地库初始化
git add README.md------------追踪README.md文件,放置到暂存区
git commit -m “first commit”------------该文件被提交到本地库
git remote add origin git@github.com:HLBayes/CSDN.git------------将仓库连接到远程服务器
git push -u origin master------------改动提交到远端服务器(并且是master分支)

最后准备工作算是全部结束,效果如下:

CSDN

克隆线上项目

  1. 开始克隆github的项目,进入你项目的比如说:https://github.com/HLBayes/CSDN,找到clone or download ,点它,它会给你个地址,然后记住那个地址。https://github.com/HLBayes/CSDN.git
    git clone [url]------------下载一个项目和它的整个代码历史
  2. 将该项目克隆到本地:git clone https://github.com/HLBayes/CSDN.git
    或者你想换一个本地存储路径,新建一个文件夹,然后进去,git init就可以了。

常用命令

一般来说,日常使用只要记住下图6个命令,就可以了。

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库
    图解命令.png>
  1. git pull:可以从远程仓库更新代码到本地
  2. git add [file]:1.1 新增文件修改到本地git仓库 新增当前文件夹下所有文件的修改:git add .,如果被卡住了,就git status看看什么原因,并把创建.gitignore文件,添加git忽略跟踪的大文件,再git add .
  3. git commit -m [message]:1.2 提交文件修改并做备。也可以使用-a 参数不执行 git add 命令,直接提交git commit -a
  4. git push -u origin master:将你commit的代码推送到master分支
  5. git checkout [file]:恢复暂存区的指定文件到工作区
  6. git fetch [remote]:下载远程仓库的所有变动

使用git status查看哪些文件使用git跟踪
创建.gitignore文件,添加git忽略的文件
比如.gitignore文件内容设置为:

# dir 不需要提交的目录
/node_modules
​# file 不需要提交的文件
config.ini
# log 不需要提交的任意包含后缀名为log的文件
*.log
# Package Files 不需要提交的任意包含后缀名为jar的文件
*.jar

如果是中途使用gitignore,需要使用以下代码删除cache,不然gitignore会失效。

git rm -rf --cached .
git add .

删除.git文件夹即可删掉创库管理:rm -rf .git

分支管理

git checkout -b mybranch 新建并切换到mybranch分支
git checkout master 切换分支到master
git branch -d mybranch 删除mybranch分支
比如,如果要将开发中的分支(develop),合并到稳定分支(master),
首先切换的master分支:git checkout master
然后执行合并操作:git merge develop
当你fork了别人的仓库时,想要保持更新要做如下操作
git remote add upstream https://github.com/xxxxx/xxxxx.git
git fetch upstream
git merge upstream/master

如何进行回滚git log 查看提交的历史commit以及他的ID

git log查看提交的历史commit以及他的ID
git revert <commit log string>是撤消该commit,作为一个新的commit。
git revert是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留(这个方法是一般的做法,并不会删除任何commit,而是以一个新的commit形式去做回滚操作)
git reset是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区(使用reset前请三思,因为他会将你所有的文件与记录都删掉的)
当你做了某个commit,但是又不想要了,想要删除,可以使用以下方法删除:
git rebase -i HEAD~10
这里的10意味着rebase最近的10条记录,输入这条命令后,会让你选择删除哪条commit,保留哪条commit,非常好用。这方法参考了stackoverflow
当然,如果你不介意丢失文件操作的话,可以使用git reset --hard <sha1-commit-id>这会删除掉你所有的数据,强制回滚到commit的那个状态,非常麻烦后果很严重,不建议使用。
git reset --soft <sha1-commit-id>还有一个soft模式,这个我没用过,可能没有hard的后果严重。

解决文件冲突

如果你遇到这样的错误:
Please commit your changes or stash them before you merge.就证明你有文件冲突了
有两种解决方法:

  1. git mergetool这个命令,你要做的就是编辑主窗口的那个文件,解决掉冲突,最后用git commit -m “merge”来提交你的操作,就可以恢复正常,推荐使用这个方法。
  2. git stash,注意!这个方法会将你的所有操作全部删除,回滚到没冲突的状态。然后使用git pull就可以解决冲突了。

另外还有一些基础的教程
Git基本操作(中文)
Git指南(英文)
Git入门教程

遇到过的问题

问题:Git: fatal: Unable to create ‘/data1/libo/PyCIL_PASS/.git/index.lock’: File exists.

删除/data1/libo/PyCIL_PASS/.git/index.lock文件:rm -f .git/index.lock

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值