文章目录
1、完成基础配置
' (1) 创建一个文件'
'# (2)关联项目'
cd 项目文件夹/
'# (3)基础配置, 作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中'
git config --global user.name "你的名字或昵称"
git config --global user.email "你的邮箱"
2、 完成初始化
'# 为当前文件夹初始化git'
git init
'# 添加远程服务器'
git remote add <shortname> <url>
'''
git remote add pb https://github.com/paulboone/ticgit
'''
3、克隆/下载文件
'clone 命令: 会自动将其添加为远程仓库并默认以 “origin” 为简写。 '
git clone <项目地址>
'# 从服务器拉项目, pull 命令:可以自动抓取内容后合并该远程分支到当前分支'
git pull -u origin master
'# 想拉取 仓库中有但 本地没有的信息'
git fetch pb
4、提交代码
'# (1) 保存到缓存区,或 git add 被拖入的项目名
“ . ” 表示所有文件'
git add .
'# (2) 提交文件; -m表示注释,为提交时的说明,必须要有!'
git commit -m “要描述的内容”
git commit --amend -m "修改、并覆盖之前的提交信息"
'# (3) 推送到远端仓库码云上,项目大的话,时间会久些'
git push origin master
git push <remote> <branch>
'# 将项目内容推送到服务器'
git push -u origin master
常用命令
常见命令 | 作用 |
---|---|
git branch -a | 查看 所有分支 |
git branch -b 分支名称 | 所有分支 |
git checkout 分支名称 | 切换 到某一分支 |
git merge 原分支 目标分支 | 合并 分支 |
git status | 一般来说会显示需要提交的文件(uncommited)和未追踪的文件(untracked) uncommited:已有的,刚被修改尚未提交的 untracked:原先没有的,新建的 |
git config --list | 查看设置 |
git remote | 列出你指定的每一个远程服务器的简写 |
git remote -v | 显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。 |
. | $ git remote -v origin https://github.com/schacon/ticgit (fetch) origin https://github.com/schacon/ticgit (push) |
git remote show < remote> | 查看某一个远程仓库的更多信息 |
. | $ git remote show origin * remote origin Fetch URL: https://github.com/schacon/ticgit Push URL: https://github.com/schacon/ticgit HEAD branch: master Remote branches: master tracked dev-branch tracked Local branch configured for ‘git pull’: master merges with remote master Local ref configured for ‘git push’: master pushes to master (up to date) |
git remote rename pb paul | 修改一个远程仓库的简写名 |
git config user.name git config user.email | 查看用户名和密码 |
-
查看日志
- git log
- git reflog # 查看操作历史
- git log --pretty=oneline
-
创建标签
git tag -a v1 -m “1版本上线”- 查看所有的标签: git tag
- 查看标签的详细信息:git show
- 将该标签的代码,推到仓库 : git push origin v1
- 将所有的标签,推到仓库: git push origin --tags
-
版本回退
- git reset --hard HEAD^ # 一个“^” 代表一个版本
- git reset --hard HEAD~5 # 回退 5 个版本
- git reset --hard 版本ID # 退回到特定的版本
-
分支
- 查看分支: git branch -a
- 创建分支: git branch 分支名
- 切换分支: git checkout 分支名
- 合并分支: git merge 分支名 # 合并分支名到 当前分支
- 删除分支: git branch -d 分支名
- 删除远程分支: git push origin :要删除的分支名 # 注意,“:”前面有空格,后面没有空格
多人协同开发代码版本管理
1、多环境配置
1.1、针对的问题:
个人的git 和公司的git 可能会发生冲突的情况下
1.2 解决方法:
- 1) 在 ~/.ssh 目录下创建一个 config 文件。
- 2)在config 文件中输入以下内容
# 配置第一个环境
Host github.com # 填写域名
HostName github.com # 填写域名
User jankin # 填写 github 上的User_name
IdentityFile /Users/jankin/.ssh/id_rsa_163 # 刚刚生成得到的秘钥文件地址
# 配置第二个环境
Host gitlab.com
HostName gitlab.com
User jankin
IdentityFile /Users/jankin/.ssh/id_rsa_163
1.3 示例:当两个用户共同操作同一个文件,产生冲突,并解决
-
冲突原因:
- 用户a 和用户b 同时对一个问题 test.py 进行修改
- 后提交的用户b,无法提交
- 会显示,先“pull”操作 ⟹ \Longrightarrow ⟹ 会显示信息冲突。
- 如下所示:
-
在文件中的冲突表现:
-
解决策略:
- 删除文件中的“等号” 和 “箭头” 等多于信息。
- 如下图所示:
遇到的问题&错误
1、在Gitlab上出现“You won’t be able to pull or push project code via SSH until you add an SSH key to you”
解决方法:
(1) cd ~/.ssh
'如果显示有d_rsa.pub或者id_dsa.pub,直接进入(4)'
(2)ssh-keygen -t rsa -C "邮箱" ‘#邮箱为公司的gitlab邮箱,生成KEY’
'''
# 出现下面的提示信息,在‘******‘位置直接输入 回车 就行
Enter file in which to save the key (/c/Users/longximg/.ssh/id_rsa): //****密钥的目录 直接回车就行
Created directory '/c/Users/longximg/.ssh'.
Enter passphrase (empty for no passphrase): //*****密码设置为空 直接回车就行
Enter same passphrase again:
Your identification has been saved in /c/Users/longximg/.ssh/id_rsa.
Your public key has been saved in /c/Users/longximg/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:26He3Khz3tI1hREYImxaUoJny4FzzaQvevdeZlIrB8M isaac.zhu@dbappsecurity.com.cn //公钥
The key's randomart image is:
+---[RSA 3072]----+
| o.*+ . .o.. |
| + *o*. .. . |
| *.B o |
| +. . . .|
| . S E . . |
| . . + = .o |
| . . + +.*. . |
| . o.+o@. |
| o*B.o |
+----[SHA256]-----+
'''
(3)vim id_rsa.pub //打开id_rsa.pub文件,复制密钥
(4)然后把已经获得了SSH秘钥了可以添加到git上就好。