1,git 创建用户名(用户信息配置)
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
2,查看当前用户是谁:
git config --get user.name
git config user.name
#添加用户
git config --global user.name zhang1
查看所有用户信息
git config --list --global
#删除用户
git config --global --unset user.name 用户名
#查看配置信息
git config --list
3,初始化
初始化空目录,使git可以管理该仓库(对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行git init)
git init
新建一个目录,将其初始化为Git代码库
git init [project-name]
4,添加文件到缓存区
git add <file>
git add . #添加文件夹到缓存区
5,提交文件到本地仓库
(引号内为解释说明,便于以后再使用查找方便)
git commit -m 'explain message'
6,查看全部文件版本(查看git提交的日志)
git log
7,查看全部文件版本号commit id
(一般使用时用id的前7位就可以了)
git log --pretty=oneline
8,文件回滚
(查找当前文件的上一版本)
git reset --hard HEAD^
#HEAD^指的是上一个版本,HEAD指的是当前版本
HEAD is now at e475afc add distributed #回滚版本的版本号e475afc, add distributed为时提交的解释信息
9,文件跳转
(指定回到某个文件版本,想完全丢弃最近修改)
git reset --hard <commit—id>
#如果你想重置到某一版本,可以将 --hard 改为具体的Commit_id
git reset 1d7f5d89346
#查看在操作之前的操作信息(1,回滚到上一个版本后,查看最新版本的commit—id,以便回归最新版本;2,查看命令历史)
git reflog
9,git的运行区域
#1,工作区(Working Directory)
#你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区
#2,版本库(Repository)
#工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库
#Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的缓存区,
#还有Git为我们自动创建的第一个分支master
#以及指向master的一个指针叫HEAD。
#3,查看文件状态
git status
#4,管理修改
‘’’
1)Git跟踪并管理的是修改,而非文件。
2)什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改
更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,
甚至创建一个新文件,也算一个修改。
3)第一次修改——git add ——第二次修改——git commit
Git管理的是修改,当你用git add命令后,在工作区的第一次修改被放入暂存区,
准备提交,但是,在工作区的第二次修改并没有放入暂存区,还在工作区
所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了
,第二次的修改不会被提交
4)那怎么提交第二次修改呢?你可以继续git add再git commit,也可以别着急提交第一次修改,
先git add第二次修改,再git commit,就相当于把两次修改合并后一块提交了
第一次修改 -> git add -> 第二次修改 -> git add -> git commit
每一次修改git add,再提交git commit
如果修改后,git add ,再修改(再修改没有git add,即再修改没有添加到缓存区),直接提交git commit,那么当前文件版本就有
修改后的内容,没有再修改的内容
‘’’
10,从现有远方仓库克隆项目
#通过HTTPS协议克隆(test项目)
git clone https://gitee.com/xx/test.git/
#通过SSH协议克隆(test项目)
git clone git@gitee.com:xxx/test.git
11,如何配置ssh key
1), ls ~/.ssh/
--检查SSH key是否已经存在,如果存在,就不用生成一个新的SSH key了,直接跳到下面的第3步。
2),ssh-keygen -t rsa -b 2048 -C 'your emaill address'
回车后输出如下:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xxx/.ssh/id_rsa):
其中,/Administrator是你的用户名,直接回车,会将key保存到默认文件中
接着会输出:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
这两步是让你输入一个密码123456,以及确认密码123456,这个密码在你提交代码到Github/gitee时会用到【注意:记住这个密码,最简单的方式就是设置的和github/gittee账户登入密码一样,容易记住】
回车后就提示成功了:
Your identification has been saved in /home/xxx/.ssh/id_rsa.
Your public key has been saved in /home/xxx/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
到这一步,你会发现 ~/.ssh/id_rsa.pub 文件已经生成了。
3),先确认ssh-agent处于启用状态:
eval "$(ssh-agent -s)"
输出类似于:
Agent pid 32070
然后将SSH key添加到ssh-agent:
ssh-add ~/.ssh/id_rsa
这时又会要你输入密码123456:
Enter passphrase for /home/xxx/.ssh/id_rsa:
输入刚才记起来的密码,然后回车
4),将SSH key添加到Github账户中
直接在打开id_rsa.pub这个文件(这就是我们刚刚生成的ssh key文件),
一般大致路径如下(每个人电脑不同,路径也会不同):系统盘符 —- 用户名 —- 计算机用户名 —-.ssh ,
在这里名就可以看到 id_rsa、id_rsa.pub 、known_host这三个文件,打开id_rsa.pub,
将里面的内容原样全部复制起来。打开github.com,登入账户,点击头像旁边的下拉按钮,
选择settings —- ssh and gpg keys —— new ssh key —- 粘贴 —- 保存
5),保存后,就能在上面看见刚建立的ssh key,之后在git 客户端就能够使用了git pull,clone
12,上传远程仓库
#1查看您要同步的仓库的远程仓库列表
git remote -v
#5.2 将本地的Git仓库信息推送上传到服务器
git push https://gitee.com/***/test.git
#***为个人空间
git push -u origin master
--origin为远程仓库 master为本地分支
git push origin master
#设置远程仓库以及远程仓库地址(添加远程仓库)
git remote add 远程仓库 远程仓库地址
#修改远程仓库名
git remote rename origin oschina #origin为当前远程仓库,oschina为重命名后的远程仓库
#修改仓库对应的远程仓库地址
git remote set-url origin 仓库地址 #origin为远程仓库,仓库地址为修改后的对应地址
#从远程仓库拉取到本地git仓库
git pull origin master
origin代表的是你远程的仓库,master是分支名
13,分支的使用
#创建分支
git branch branch_name
#查看分支
git branch
#切换分支
git checkout branch_name
git switch branch_name
#创建分支并切换分支
git checkout -b branch_name
git switch -c branch_name
#合并某分支到当前分支
git merge branch_name
#删除分支
git branch -d branch_name
14,删除版本仓库的文件
git rm (无法恢复)
#删除工作区的仓库
rm (可恢复)
#恢复删除文件到最新版本
git checkout –
#退出(Ctrl + c)
exit
15,标签tag
(你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签)
git tag -a tag_name
for example :git tag -a v1.0
git log --decorate
(查看标签)
如果我们忘了给某个提交打标签,又将它发布了,我们可以给它追加标签。
例如,假设我们发布了提交 85fc7e7(上面实例最后一行),但是那时候忘了给它打标签。 我们现在也可以:
git tag -a v0.9 85fc7e7
###其中v0.9为追加标签,85fc7e7为提交id
#查看所有的标签
git tag
16,合并某分支到当前分支
git merge 某分支
git status 查看状态
17,合并冲突的处理
#发生冲突(某行有重复的内容)
#解决方法,1,保存当前分支2,保存某分支3,都保存
#git add <file_name>
#git commit -m ‘conflict fix’
git log --graph #查看详细流程图
git log --graph --pretty=oneline --abbrev-commit #查看提交commit流程图