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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值