1.本地库和远程库交互场景
-
团队内部协作
经理创建远程库,然后推送(push)代码到远程库,组员再clone到本地,修改后再push(前提是加入团队),经理再拉取(pull) -
跨团队合作
A团队leader创建远程库,B团队的人fork一份到自己的远程库。然后B再clone一份在本地,解决问题后再push到自己的远程库。
B的远程库怎么把代码合并到A团队的远程库呢?就需要B团队的人发起一个pull request请求。A团队的leader审核后再merge。
2.命令行操作
#显示当前git的状态,三部分最上面的是当前所在分支,其次是暂存区待提交的,最后是待存入暂存区的
git status
#将文件加入暂存区
git add good.txt
#将工作区所有的改变都提交到暂存区
git add .
#将文件移出暂存区
git rm --cached a.txt
#将a.txt从暂存区提交到本地库
git commit -m 'commit message' a.txt
#查看git的版本日志
git reflog
#前进或者后退版本
git reset --hard [指针位置]
#将工作区的文件和暂存区进行比较
git diff [文件名]
#将工作区的文件与本地库历史记录进行比较
git diff [本地库中的历史版本] [文件名]
#不带文件名则比较工作区中的所有文件
git diff
#创建分支
git branch [分支名称]
#查看所有分支
git branch -v
#切换分支
git checkout [分支名称]
#从远程库拉取代码到本地,但是不合并到本地库的代码中
git fetch [远程库地址别名] [远程分支名]
#合并分支,注意:合并之前要切换分支到接收代码的那个分支
git merge [分支名称]
#解决冲突1.先编辑文件,解决冲突 2.添加到暂存区 3.git commit 这里不要带文件名
git add [文件名] git commit
#拉取代码 pull = fetch + merge,如果容易冲突最好采用拆开的方式,否则就直接pull
git pull [远程库地址别名] [远程分支名]
#克隆代码:如果我们需要克隆仓库中的某一个分支: 这样就可以精确的克隆该仓库中的一个分支了。
git clone -b 分支名 仓库地址名
3.从码云、GitHub、GitLab等仓库上拉取
#1.Git Bash Here 进入你自己的目录
#2.注意空格,换成自己的用户名Github或者码云(克隆哪个的就用对应的用户名);
git config --global user.name "你自己的用户名"
#3.
git config --global user.email "你的自己的邮箱"
#或者配置SSH
#1.检测当前电脑是否配置,如果没有出现:No such file or directory,就说明有密钥存在了
cd ~/.ssh
#2.接着备份原有ssh密钥
mkdir key_backup$ cp id_rsa* key_backup$ rm id_rsa*
#3.生成新的秘钥$
ssh-keygen -t rsa -C “您的邮箱地址”
#4.把公钥上传到平台上
cat ~/.ssh/id_rsa.pub
#5.克隆代码,必须是是SSH下的地址,如果是HTTPS就需要用户名和密码
git clone git@git.oschina.net:********.git