三大操作系统
2020-04-09 23:31:55 0 举报
AI智能生成
廖雪峰git知识梳理(求点赞蟹蟹~)
作者其他创作
大纲/内容
初始化
git config
git config --global color.ui true
文件名显示颜色
git config --global alias.<abbr> <full>
用缩写代替命令
具体
st
status
co
checkout
ci
commit
br
branch
unstage
'reset HEAD'
last
'log-1'
lg
使得日志显示极为清楚
每个仓库的配置文件都放在.git/config中
alias后删掉一行即可删除别名
当前用户的配置文件在用户主目录下的隐藏文件.gitconfig中
--global
全局参数,以后本机(当前用户)上所有git仓库可用
如果不加,则只对当前的仓库起作用
mkdir
在工作目录下,建立一个新的子目录
pwd
显示当前目录
git init
把这个目录变成Git可以管理的仓库
git配置文件网站
.gitignore
忽略某些文件
git add <file>时发现被忽略了
git add -f <file>
强制将被忽略的文件添加到git
git check-ignore
检查.gitignore哪里写错了
使用代理
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080
取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset https.proxy
ssh
当在远程库上设置了SSH 之后还是报错连接超时
这个时候需要检查一下SSH是否能够连接成功,输入以下命令
ssh -T git@github.com
打开存放ssh的目录
cd ~/.ssh
创建文件方法
按住shift键盘
vim config,然后编辑,最后:wq退出
键盘输入字母i进入插入编辑模式
如果是输出状态,首先按Esc键退出输入状态,然后按Shift+“;”
再输入q!或wq!(不保存改动,wq!是保存文件的写入修改)退出
再输入q!或wq!(不保存改动,wq!是保存文件的写入修改)退出
touch 文件名 ,可创建文件
步骤
在github上创建一个库
其他人可以git clone这个库
所有人都可以进行修改,然后添加提交推送到远程
再从远程获取他人修改时用git pull以达到本地最新
如果发生冲突,需要手动修改再merge
尽量不要改别人的代码
GitHub
fork
可以任意fork开源库
自己拥有fork后的仓库的读写权限
pull request
推送给官方仓库来贡献自己的代码
概念
Git提交只针对修改,不针对文件!
工作区
1、查看文件
ls
查看当前文件夹下的文件目录
cat
查看文件的内容
2、rm
删除工作区中的文件
1)再git rm,并git commit
就可以删除版本库中的该文件
2)再git checkout -- <file>
就可以用版本库中的文件恢复工作区中的文件
2、git status
显示工作区的状态
modified
被修改过的文件
红色表示修改未add
绿色表示修改已add但未提交
Untracked
一次也未提交过的文件
clean
对工作区无任何修改
deleted
版本库中有,但工作区中删除了的文件
git diff
如果git status说有文件被修改过,可以查看修改内容
3、git checkout -- file
撤销工作区的修改
(在上一次git add或git commit之后)
(在上一次git add或git commit之后)
其实是用暂存区或版本库中的文件替换工作区的文件
4、git checkout <branch-name>
切换到一个分支
git checkout -b <branch-name>
checkout后加上-b参数,表示创建一个分支并切换到该分支
相当于两条命令
git branch <branch-name>
git checkout <branch-name>
git branch <branch-name>
5、git switch <branch-name>
切换到已有的分支
git switch -c <branch-name>
switch后加上-c参数,表示创建并切换到新的分支
6、git branch
可以查看所有分支和当前分支
git branch <branch-name>
加<branch-name>参数,则表示创建一个新分支
git branch -d <branch-name>
加-d <branch-name>参数,则表示删除一个分支
7、git merge <branch-name>
合并指定分支到当前分支
当两个分支都对一个地方有更新时,就会发生冲突,
此时可以用git status查看冲突文件,然后直接查看其内容,手动修改
此时可以用git status查看冲突文件,然后直接查看其内容,手动修改
git log --graph
可以查看分支合并图
merge后加上--no-f参数表示用创建分支并删除的方式合并
还应为commit添加-m参数
8、git stash
突然遇到急需解决的其他工作时,
把当前工作现场储藏起来
把当前工作现场储藏起来
git stash list
查看储存的工作空间
git stash apply
恢复工作空间
后加stash@{0}参数,表示选择一个stash list中的stash恢复
git stash drop
恢复后,删除stash的内容
git stash pop
恢复工作空间,同时把stash内容也删了
9、git cherry-pick <commit-id>
复制一个特定的提交到当前分支
修复master上的bug后复制修改到dev
加入
1、git add .
将当前文件夹内的文件全部add入暂存区
git add <file_name>
add一个文件
放回
2、git reset HEAD <file>
将add进暂存区的文件全部放回工作区
暂存区
1、git commit -m " "
-m后面输入的是本次提交的说明
历史记录里找改动记录时显示
2、git log
从最近到最远的提交日志
git log --pretty=oneline --abbrev-commit
减少无用输出信息
本地版本库
1、版本穿梭
git reset --hard HEAD^
回退到上一版本
可以撤销提交到本地版本库的修改
git reset --hard <commit_id>
历史版本之间穿梭
git reflog
查看历史命令
以便确定要回到未来的哪个版本
2、git rm,并git commit
删除版本库中的文件
3、git rebase
把本地未push的分叉提交历史整理成直线
4、git tag
查看所有标签
标签与某个commit版本绑定
标签按字母排序
git tag <name>
在当前分支打一个标签
git tag -a <tagname> -m " " <commit_id>
创建带有说明的标签
git show <tagname>
查看某一标签信息
delete tag <tagname>
git tag -d <tagname>
git push origin :refs/tags/<tagname>
git push origin :refs/tags/<tagname>
从本地和远程删除标签
git push origin <tagname>
推送某个标签到远程
git push origin --tags
推送所有标签
关联
git remote add origin git@github.com:enlyhua/gitTest.git
1、git remote add orgin <git_address>
关联一个远程库
gitee
git remote add origin git@gitee.com:<server_name>/<repo_name>.git
可能会报错
说明本地库已经关联了一个名叫origin的远程库
git remote rm github
git remote add origin git@github.com:enlyhua/gitTest.git
2、git branch --set-upstream-to=origin/<branch_remote> <branch_local>
指定本地的一个分支与远程库中的一个分支的链接
或git branch --set-upstream-to <branch_local> origin/<branch_remote>
推送
git push <repo_name> <branch_local>
把本地分支的所有内容推送到对应的远程分支
要先再关联库,才能推送
-u参数,使得本地的分支与远程的联系起来,以后推送和拉取都可以简化命令
push有可能失败
当你的小伙伴也有最新提交,并且和你的提交有冲突时
要先pull,然后本地merge,解决冲突,再pull
拉过来
克隆远程库
git clone git@github.com:<server-name>/<repository-name>.git
从远程库克隆一个本地库
拉取分支
git fetch
拉取最新的提交
git pull
把最新的提交从远程库中的远程分支拉取过来并合并
pull=fetch+merge
需要本地有代码,pull只是拉取过来更新你的代码
pull有可能会失败
no tracking information
原因是没有指定本地分支和远程分支的链接
原因是没有指定本地分支和远程分支的链接
通过branch远程关联命令解决
pull成功后,可能在与本地merge时有冲突,需要手动解决,之后就可以push了
这样你的修改与小伙伴的修改都push了
<<<<<<<< HEAD
你写的代码
===============
别人写的代码
你写的代码
===============
别人写的代码
git diff可以查看具体不同之处,一个一个进入文件手动修改
输入q回车退出
git checkout -b <branch_local> <repository_name>/<branch_remote>
把远程库中的分支创建到本地,变为本地分支
远程版本库
远程库的默认名为origin
概念
github上的一个repository就是一个远程服务器
1、运行git的服务器
一台24小时开机的电脑
2、github网站免费提供git远程仓库
3、ahead of by 1 commit
本地的分支比远程的分支要超前1个commit
git remote
显示与当前本地库关联的远程库的信息
git remote -v
加上-v参数
显示详细信息
git remote rm <repo_name>
删除与当前远程库的关联
0 条评论
下一页