Windows安装git使用

1 下载Git
https://git-scm.com/downloads 速度很慢
https://npm.taobao.org/mirrors/git-for-windows/ 速度快

2 查看安装成功 git version

3 配置 user
git config --global user.name ‘username’
git config --global user.email ‘[email protected]
local只对某个仓库有效,global对当前用户所有仓库有效,system对系统所有登录的用户有效

4 显示config的配置
git remote add origin [email protected]:6326xxxx/demo.git 配置源
cat .git/config 查看配置
git config --list --global

5 建Git仓库
两种场景:
①已有的项目代码纳入Git管理
cd 项目代码所在的文件夹
git init
②新建的项目直接用Git管理
mkdir test
cd test
git init your_project(会在当前路径下创建和项目名称同名的文件夹,有个隐藏文件.git就是仓库)
cd your_project
把项目放进这个文件里假如项目文件叫demo.py,
git add demo.py(文件名) 在当前路径下存到暂存区了
git add 文件夹/ 添加整个文件夹及文件夹下的内容
git status查看一下状态
git commit -m’第一次提交’
***如果之前add和commit过的文件,修改后再git add -u也可以

6 修改文件名demo.py变成demo
两种方法
①git mv demo.py demo
git commit -m’修改’
②git add demo
git rm demo.py
git commit -m’修改’

7 清除暂存区和工作路径里的文件,不会清除commit里的
git reset --hard
git log(查看历史)

8查看、创建、删除,上传分支branch
git branch -v 查看当前分支
git branch -av
git checkout -b feature 创建分支feature

git branch -d 分支名或hash值
git branch -D 分支名或hash值(强制删除)
git push -u origin 分支名
8 git log的用法
git log --oneline
git log --oneline --all
git log --oneline --all -n4 最近的commit历史
git log --oneline --all -n4 --graph 图形化演进历史

9 .git仓库文件
cd .git
ls -a
HEAD内容指的是目前的使用分支
config这里显示配置的信息包括前面配置的用户名和用户邮箱
refs文件里面有heads分支和tags标签
heads里显示所有分支,HEAD的指向就是在这里面
objects里面是所有用到的对象

10 commit、tree、blob关系
一个commit只有唯一的一个tree
这个tree对应很多tree(文件夹)
这些tree各自包含很多blob(文件)

扫描二维码关注公众号,回复: 11497116 查看本文章

11通过hash值查找对应的对象
git cat-filr -t xxxxxxxxx 查找hash值对应tree树对象
git cat-filr -p xxxxxxxxx 查找hash值对应文件blob对象
find .git/object -type f查找git文件下类型为文件f的所有对象
新建1个commit仅包含一个文件,一共有1个commit对象,2个tree对象,1个blob对象

12 分离头指针detached HEAD
修改一个commit过的文件且没有分支,他现在是无对应的分支,你必须添加一个新分支与之对应
HEAD需要指向一个分支也可以指向一个commit
git branch new_fix hash值
13 gitk -all 图形化界面

14 git diff xxx xxx(hash值)比较两个commit
git diff HEAD HEAD^1(HEAD的父亲)

15 刚提交commit -m’message’的修改
git commit --amend
然后进入修改页面假如修改一个文件名
Move filename demo.py to demo

16 对commit的所有历史的一个-m’message’进行修改
git log --graph
git rebase -i xxxx(这里的hash值必须是要修改的commit的父亲的hash值,通常下面一个commit就是他的父亲)
然后对要修改的一行message把pick 换成r
然后进行修改 保存 :wq!

17连续的多个commit合并成1个
git log --graph
git rebase -i xxxx(这里的hash值必须是要修改的commit的总父亲的hash值)
然后假如合并到第一行,第一行的pick不用改,其他需要和平的行把pick改成s即可
然后保存 :wq! 跳出一个画面 你可以在第一行的问题备注一下合并的理由

18 间隔的多个commit合并在一起
git log --graph
git rebase -i xxxx(这里的hash值必须是要修改的commit的总父亲的hash值)
然后再最上面一行加上pick xxxx(祖宗的hash值)
其他需要合并的行把pick改成s,其他不需要合并的不变就行了 保存 :wq!
git rebase --continue 备注一下合并理由
这里合并后会自己形成一个祖先
其他没用的可以删了

19 暂存区和HEAD的差异比较
假如修改了一个文件 add后可以用
git diff --cached 比较暂存区和HEAD的差异

20 工作区和暂存区的差异
比如add后的文件 修改了 那么git diff就能查看出两者的差异修改了哪里

21 暂存区恢复成HEAD一样
git reset HEAD把暂存区的文件恢复到工作区

22 把工作区恢复成和暂存区一样
git checkout --文件名 把工作区需要恢复的文件写上
git diff 文件名 对比一下是否有差异,没有就代表成功

23 取消暂存区部分文件
git reset HEAD – 文件1路径 – 文件2路径…(要取消的n个文件,恢复成HEAD的形式)

24 取消消除近几次的提交,把暂存区和工作区都回退到某个commit的状态
git reset --hard xxxx(想要退到某个commit的hash值)

25 看看不同提交的commit的内容之间的差异
①git diff demo1 demo2 比较demo1和demo2之间所有文件的差异
git diff demo1 demo2 – 文件名 比较demo1和demo2之间指定共同文件的差异
②git branch -av 查找commit对应的分支
git diff 分支1 分支2 – 文件名 通过分支比较两个commit之间指定文件的差异
26

27

28

29Git仓库备份到本地
mkdir doc要新建一个文件夹不要放在本地git文件夹
cd doc
到git仓库pwd
获取url
①方法哑协议
git clone --bare url/.git newname把远程url仓库备份到本地且不放在放在工作区的裸仓库,命名为newname
②方法智能协议
git clone --bare file:///url/.git newname
智能协议

本地更新同步到远方仓库
git remote -v发现没有
git remote add 远端仓库名 file:///url.git
查看本地和远端branch分支
git push 远端仓库名

30创建GitHub账号

31配置公私钥
cd ~/.ssh
ls -al 查看是否有公私钥
ssh-keygen -t rsa -b 4096 -C “[email protected]
cd ~/.ssh
ls -al
type id_rsa.pub获取sshkey
www.Github.com
右上角setting
左边一列SSH and GPG keys
中间右上角New SSH key
title不用写,把sshkey复制进去ok

32在github建立仓库

33本地仓库同步到Github
git remote add github [email protected]:xxx.git 新增一个远端连接站点,其中这个站点我们命名为github,后面的是SSH协议链接,在github可以复制
①git fetch github master仅仅是把远端分支拉过来还没做合并,用github链接指定master分支
git branch -v查看本地分支
git branch -va查看本地+远端分支
git checkout +要合并的分支 切换到要合并的分支
git merge github/master 在当前分支状态下和github链接下的master合并(会报错,因为两个master是历史上不相干的看下面代码)
git merge --allow-unrelated-histories github/master

git pull 远端有的文件本地没有需要先pull拉过来,相同的会合并过来
git remote -v 查看有几个备份链接

git remote add origin [email protected]:6326xxxx/demo.git 配置源
git remote -v 查看有几个备份链接
git push -u origin master

git push github --all(github是前面命名的链接名,all是所有分支)
git push github master 把master分支同步到远端
34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

猜你喜欢

转载自blog.csdn.net/Q632655672/article/details/105719185