Git基础入门
远程仓库正常提交
远程仓库空仓库状态
git init
git remote add origin '远程仓库链接'
git pull origin master 下拉代码
git add .
git commit -m ""
git push -u origin master 首次提交
git push origin master 非首次提交
如果需要输入账号、密码,输入管理员账号密码(Gitee、Github)
强制提交本地仓库到远程
远程已经建立了仓库, 且本地也已经建立了仓库
git init
git remote add origin "http://your remote repo address"
git add .
git commit -m"1"
git branch 判断分支
git config --global user.name "yourname"
git config --global user.email "youremail@"
git pull origin master 多人协作,需要吧远程master代码pull下来
git branch --set-upstream-to=origin/master master 分支远程<->本地
git pull origin master --allow-unrelated-histories 强制合并
git push
Git常用指令
- 初始化:
git init
- 添加文件:
git add .
- 提交代码:
git commit -m ""
- 追加提交:
git commit --amend
- 退出追加提交
::wq
#类似linux的vi文本操作 - 设置代理:
git config --global http.proxy http://192.168.80.202:808
git config --global http.proxy https://192.168.80.202:808
- 取消代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
- 查看当前设置代理:
git config --global --get http.proxy
git config --global --get https.proxy
- 获取配置信息:git config --list
- 配置用户、邮箱:
git config user.name
git config user.email
git config --global user.name "your name”
git config --global user.email "you@example.com"
- 与仓库建立连接:
git remote add origin http://...
- 获取版本:
git log
git log pretty=oneline
一行显示
- 获取历史版本:
git reflog
- 设置版本:
git reset --hard ...
- 多次合并提交;增删改查;
git rebase -i [startpoint] [endpoint]
弹出对话框,类似linux vi操控文件pick
:保留该commit(缩写:p)reword
:保留该commit,但我需要修改该commit的注释(缩写:r)edit
:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)squash
:将该commit和前一个commit合并(缩写:s)fixup
:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)exec
:执行shell命令(缩写:x)drop
:我要丢弃该commit(缩写:d)
- 强制合并:
git pull --allow-unrelated-histories
参数是因为两个仓库毫无关联,需要加 - 拽取:
git pull
- 上传:
git push
- 查看远程仓库:
git remote -vi
可以查看你当前项目的远程git地址 - 获取远程仓库master分支,并新建一个分支:
git fetch origin master:temp
#[origin]不定,通过git remote -v查看远程仓库是什么 - 查看代码状态:
git status
查看代码改动、所在分支、代码冲突等
分支操作
- 合并分支:
git merge [branch]
合并分支到master - 创建本地分支并切换:
git checkout -b dev
- 关联远程分支:
git branch --set-upstream-to=origin/remote_branch your_branch
- 新建分支:
git branch +分支名
- 切换分支:
git switch +分支名
- 删除分支:
git branch -d +分支名
- 查看分支代码改动:
git diff [branch]
- 查看远程分支:
git branch -a
- 分支提交到远程仓库:
git push origin dev:dev
将dev分支提交到远程仓库 - 将远程分支拉下来:
git pull origin master
获取公钥(GITEE)
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
ssh-keygen -t rsa -C 'xxxxx@company.com' -f gitee_id_rsa
cat ~/.ssh/id_rsa.pub
生成的位置:C:/Users/Administrator/.ssh
公钥添加完成后:
ssh -T git@gitee.com
Step1: 首次使用需要确认并添加主机到本机SSH可信列表。
The authenticity of host 'gitee.com (212.64.62.183)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Step2: 输入Y即可
Hi liuwanqiang (DeployKey)! You've successfully authenticated, but GITEE.COM does not provide shell access.
Note: Perhaps the current use is DeployKey.
Note: DeployKey only supports pull/fetch operations
Step3: 若返回xx 内容,则证明添加成功
Hi XXX! You've successfully authenticated,
but Gitee.com does not provide shell access.
Step4: 针对ssh -T git@gitee.com
命令运行错误的解决方案
- ssh -T git@gitee.com-> git@gitee.com: Permission denied (publickey)
- ssh-agent -s
- ssh-add ~/.ssh/id_rsa
- ssh-agent -s-> unable to start ssh-agent service, error :1058
- Win+R ->services
- OpenSSH Authentication Agent
- if disabled then ->Automatic
获取公钥(GITHUB)
- 切换文件夹:
cd ~/.ssh/
- 如果没有的话则:
mkdir ../.ssh
- 配置信息:
git config --global user.name "Damogu"
git config --global user.email "919740574@qq.com"
- 生成ssh密钥:
ssh-keygen -t rsa -C "919740574@qq.com"
- 路径选择 : 使用该命令之后, 会出现提示选择ssh-key生成路径, 这里直接点回车默认即可, 生成的ssh-key在默认路径中;
- 密码确认 : 这里我们不使用密码进行登录, 用密码太麻烦;就一路回车下去
- 公钥私钥位置:
- 例:
C:/Users/Han Dong/.ssh
目录- id_rsa
- id_rsa.pub 公钥(内容加入到github)
- 例:
- 验证是否配置成功:
ssh -T git@github.com
正常情况
出现如下信息:
Warning: Permanently added the RSA host key for IP address '192.30.252.131' to the list of known hosts.
Hi AssistantLiu! You've successfully authenticated, but GitHub does not provide shell access.
验证时可能让你输入YES,当出现以上信息时,说明配置成功,可以连接上GitHub;
异常情况
ssh: Could not resolve hostname github.com: \262\273\326\252\265\300\325\342\321\371\265\304\326\367\273\372\241\243
出现该问题原因是,因为电脑使用的是代理,公司内网,无法尚未,通过代理另一台电脑实现联网。