当前位置: 首页 > news >正文

git使用(复健 1 )

#ubuntu:
sudo apt-get install git

winodws

https://git-scm.com/downloads

设置用户名和邮箱:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
#global表示本机上所有git仓库都使用这个配置

查看用户名和邮箱:

git config user.name
git config user.email

创建仓库repository

创建目录并进入,使用git init转换为git仓库

windows下目录名最好不要带中文

$ pwd
/d/firstgit
$ git init
Initialized empty Git repository in D:/firstgit/.git/
$ ls
$ ls -ah
./ ../ .git/

.git目录用于跟踪管理版本库

将创建的文本文件放入此目录

#添加到仓库
git add readme.txt

git无法跟踪图片/视频等二进制文件的具体变化

提交文件到仓库:

$ git commit -m "xxx" #本次提交的说明
[master (root-commit) d30cd93] xxx
1 file changed, 1 insertion(+)#一个文件被改动,插入一行内容
create mode 100644 readme.txt

commit一次可以提交多个文件,add也可以批量添加文件

修改

使用git status查看仓库状态

$ git status
On branch master
nothing to commit, working tree clean
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

已被修改但还未提交

git diff查看具体修改:

$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 4486c34..5acf951 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,2 @@
gitbash
+gitbash2

$ git add readme.txt

$ git commit -m "modified"
[master 70e6db6] modified
1 file changed, 1 insertion(+)

版本控制

从commit恢复

git log查看历史记录:
会给出用户名,邮箱,修改时间,提交的说明

当前版本:HEAD,上个:HEAD^,上上个:HEAD^^依次类推

往前10个版本:HEAD~10

版本回退:

$ git reset --hard HEAD^
HEAD is now at 70e6db6 modified

git log后可以看到最新的版本记录已经没了(其实是指针指向变化了)

要想恢复回来就要知道版本的commit id(使用git reflog)

$ git reflog
70e6db6 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
3185d16 HEAD@{1}: commit: modifiled again
70e6db6 (HEAD -> master) HEAD@{2}: commit: modified
d30cd93 HEAD@{3}: commit (initial): xxx
$ git reset --hard 3185d16

工作区就是电脑目录,版本库为.git目录(一般默认隐藏)

版本库中有暂存区stage和自动创建的分支master

git add是将文件修改添加到暂存区,git commit是将暂存区的所有内容提交到当前分支,全部提交后暂存区为空

git追踪的是修改,每次修改不用git add则不会加入commit中

撤销修改和删除

$ git checkout -- filename#丢弃工作区的修改

(1)修改后未add,则回到和版本库一样的状态

(2)修改后add但没有commit,则回到add后的状态

撤销add到暂存区的修改:

$ git reset HEAD readme.txt

再丢弃工作区修改

如果已经commit:回退版本(前提是还没提交远程仓库)

删除文件:

git status会告知哪些文件被删除了,若要从版本库中删除则git rm <filename>,并git commit

如果误删则撤销:git checkout -- <filename>,前提是已经提交到了版本库

远程仓库 github

本地仓库和github仓库传输通过ssh加密

创建ssh key:

ssh-keygen -t rsa -C "xxxx@xxx.com"

在用户主目录创建了.ssh文件夹,且里面有id_rsa(私钥),id_rsa.pub(公钥)

然后打开github,进入Account settings的ssh keys页面,Add SSH Key,粘贴id_rsa.pub内容,点击Add Key

将本地库与远程库关联:

$ git remote add origin git@github.com:yourname/firstgit.git

远程库默认叫origin

推送:

$ git push -u origin master
查看远程库信息:
git remote -v
删除远程库:
git remote rm xxx
#此处的删除是本地与远程解绑,物理删除要到github删除

克隆远程库到本地:

git clone git@github.com:yourname/xxx.git

相关文章:

  • 建设通网站是筑龙网的吗/软文广告文案
  • 找人网站/免费注册
  • 比较有设计感的网站/长沙seo排名公司
  • 县政府门户网站建设方案/百度广告联盟
  • 北京做网站源代码的/群排名优化软件
  • 微官网制作/网址seo关键词
  • 2022视频编码招聘面经
  • Python爬虫 Selenium(六)
  • Day54 跨域CORS资源JSONP回调域名接管劫持
  • Doris 使用记录(随机更新(ง •_•)ง)
  • 软考初级哪个好考
  • 套接字编程(二)UDP服务端与客户端的通信模拟实现
  • 【电子学会】2022年12月图形化四级 -- 金牌百分比
  • Pandas 数据结构 - Series
  • ESP32 FreeRTOS-消息缓冲区(13)
  • Leetcode刷题Day26休息Day27------------------回溯算法
  • Numpy的轴及numpy数组转置换轴
  • 中国芯,SNS521系列水燃行业云芯产品获奖