git 命令 语法
本地库初始化Git本地库设置签名信息查看状态暂存区本地库查看版本历史记录前进后退版本删除文件并恢复对比文件差异Git分支
创建本地仓库 演示远程库创建远程库地址别名push 推送本地库到远程库windows云平台密码克隆远程库pull 拉取操作fetch 操作merge 操作pull 操作解决冲突
fork 跨团队协作SSH登录TortoiseGit 图形化工具
本地库
安装Git后,在资源管理器的空白处,单击鼠标右键打开窗口,点击Git Bash Here,打开Git命令 行窗口, 在窗口中可直接使用Linux命令操作
初始化Git本地库
git init
设置签名信息
项目级别/仓库级别:仅在当前目录的本地Git仓库范围内有效
git config user.name wangbr_pro
git config user.email wangbr888@163.com
系统用户级别:登录当前操作系统的用户范围
git config --global user.name wangbr_glo
git config --global user.email wangbr666@163.com
查看状态
$
git status
On branch master
No commits yet
nothing to commit
(create/copy files and use
"git add" to track
)
暂存区
将工作区的“新建/修改”添加到暂存区
git add
<file name
>
恢复,不放到暂存区
git rm --cached
<file name
>
本地库
将暂存区的内容提交到本地库
git commit
[-m
"提交说明信息"] <file name
>
查看版本历史记录
git log
以漂亮的格式显示:即每条日志只显示一行
git log --pretty
=oneline
简约的格式显示:
git log --oneline
显示回滚版本步数[推荐 ]
git reflog
前进后退版本
基于索引值操作[推荐方式]
git reset --hard
<局部索引值
>
git reset --hard 64d3d2a
使用 ^ (异或)符号:只能后退
git reset --hard HEAD^
使用 ~ 符号:只能后退
git reset --hard HEAD~n
删除文件并恢复
前提:删除文件前,此文件需要已经提交过本地库,才可恢复
删除:rm 文件名.txt
git reset --hard
<历史记录索引值
>
对比文件差异
将工作区中的文件和暂存区进行比较
git diff <文件名
>
将工作区中的文件和本地库历史记录比较
git diff <本地库中历史版本
> <文件名
>
Git分支
查看分支:
git branch -v
创建分支:
git branch
<新分支名
>
删除分支(删除的分支不是当前正在打开的分支):
git branch -d
<分支名
>
切换分支:
git chckout
<分支名
>
合并分支:
git checkout
<需要接受的分支名
>
git merge
<有新内容的分支名
>
解决冲突:
git add 文件名
git commit -m
"日志信息"
创建本地仓库 演示
mkdir wangbr
cd wangbr
git init
vim demo1.txt
git add demo1.txt
git commit -m
"fisrt commit" demo1.txt
远程库
创建远程库地址别名
查看当前所在本地仓库下的所有远程地址别名
git remote -v
创建远程库地址别名
git remote add 别名 远程地址
git remote add origin https://gitee.com/stu/wangbr.git
push 推送本地库到远程库
git push
[远程库别名
] [分支名
]
windows云平台密码
按 Ctrl + R 打开运行窗口,输入 control查看方式大图标找到 凭据管理器找 gitee.com
克隆远程库
git clone 远程地址
git clone https://gitee.com/wbr6666/wangbr.git
pull 拉取操作
pull 拉取操作其实是两步:
pull = fetch + merge
fetch 操作
只把远程库中的内容下载到本地,但是没有改本地工作区的文件。
git fetch
<远程库地址别名
> <远程分支名
>
演示
git fetch 远程库地址别名 远程分支名
git fetch origin master
cat demo1.txt
git checkout origin/master
cat demo1.txt
git checkout master
merge 操作
把远程代码合并到本地代码中
git merge 远程库地址别名/远程分支名
演示
git merge origin/master
pull 操作
针对没有冲突的情况 ,不分为上面两个步骤,可以直接使用 pull 提取操作,
git pull 远程库地址别名 远程分支名
演示
$
pwd
/d/gitStudy/wangbr_jl/wangbr
$ vim demo1.txt
$
git commit -m
"jl cmmmit" demo1.txt
$
git push origin master
$
cd ../
../wangbr
Administrator@PC201802211917 MINGW64 /d/gitStudy/wangbr
(master
)
$
git pull origin master
$
cat demo1.txt
hello, 我是总监
hi, 我是经理,我加入项目组来啦
...。
haha,我是经理,我又来了。。。。
解决冲突
上面有冲突时,需要先 git pull 拉取远程代码,然后 vim 查看修改文件,再手动解决冲突, 保留需 要的
git pull origin master
vim demo1.txt
添加到本地库和远程库
git add demo1.txt
git commit -m
"jl resolve conflict"
git status
On branch master
Your branch is ahead of
'origin/master' by 2 commits.
(use
"git push" to publish your local commits
)
nothing to commit, working tree clean
git push origin master
fork 跨团队协作
开发人员 入场,访问 https://gitee.com/mxg6666/wangbr , 点击右上角的 Fork
fork 之后,发现域名变了,和项目名下面多了一行描述
开发人员 克隆项目,然后修改内容提交
$
cd ../
..
$
mkdir wangbr_kf
$
cd wangbr_kf/
$
git clone https://gitee.com/mxg999/wangbr.git
Cloning into
'wangbr'...
remote: Enumerating objects: 24, done.
remote: Counting objects: 100%
(24/24
), done.
remote: Compressing objects: 100%
(8/8
), done.
remote: Total 24
(delta 7
), reused 24
(delta 7
)
Unpacking objects: 100%
(24/24
), done.
$
cd wangbr/
$ vim demo1.txt
$
git add demo1.txt
$
git commit -m
'kf commit' demo1.txt
$
git push origin master
在 码云 上点击 Pull Request 标签, +新建 Pull Request
切换 总监 , 点击 Pull Request 标签, 点击下方 开启的
预览审核代码
SSH登录
windows系统自带保存密码功能,如果 mac 没有自带保存密码功能怎么办?
https 没有记住就帐号,每次登录时都要输入帐号密码,就很浪费时间。
ssh 可以避免每次添加用户名密码。
生成密钥
$
cd ~
$
rm -rvf .ssh
$ ssh-keygen -t rsa -C wangbr666@163.com
$
cd .ssh
$
ls -lf
$
cat id_rsa.pub
登录 码云, 点击用户头像→设置
点击 SSH公钥,输入复制的密钥信息
权限验证
回到 Git Bash 创建 远程ssh地址别名
cd /d/gitStudy/wangbr
vim demo1.txt
git commit -m
"test ssh update" demo1.txt
git remote add origin_ssh git@gitee.com:mxg6666/wangbr.git
git remote -v
origin https://gitee.com/mxg6666/wangbr.git
(fetch
)
origin https://gitee.com/mxg6666/wangbr.git
(push
)
origin_ssh git@gitee.com:mxg6666/wangbr.git
(fetch
)
origin_ssh git@gitee.com:mxg6666/wangbr.git
(push
)
TortoiseGit 图形化工具