目录
六、从SVN迁出到本地Git仓库(还没有配置Git仓库的,直接看第八条)
一、git 代码管理
1. 从远程仓库拉取最新代码:git pull ##如果要拉取所有分支代码,可使用命令:git pull --all
2. 新建文件添加到版本库:git add <文件名> ##如果要添加多个文件,可使用命令:git add -A
3. 将当前项目中的改动同步到本地仓库中:git commit -m "日志"
4. 将本地仓库中的代码同步到远程仓库:git push
5. 将develop分支的改动同步到master分支:1)git checkout <master> 2) git merge <develop>
6. 修改已commit,但还未push的提交日志(vi操作命令):git commit --amend
7. 代码回退(提交错误的代码):
- git reset --hard HEAD^ 回退到上个版本
- git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
- git reset --hard commit_id 退到/进到 指定commit的sha码
- git reset --soft commit_id 回退到指定提交版本,并保留修改
- git push origin HEAD --force
8. 代码暂存(解决修改错分支,需要切换至新分支修改):
- git stash 存储代码到临时空间
- git checkout --b 切换至一个新的分支
- git stash list 查看暂存的代码
- git stash pop 将暂存的代码恢复到当前工作区
9. 解决master push失败(两边代码不同步的问题)
- git pull --rebase origin master
- git push -u origin master
- git fetch --all && git reset --hard origin/master && git pull ##分步执行这3个命令,强制从远程仓库覆盖到本地
10. 合并多次提交记录(解决提交记录过多,日志不友好):
- git log ##查看提交记录
- git rebase -i <commitid> ##合并提交记录到指定分支<跳转详细步骤>
- git push -f 提交至服务器
二、git 分支管理
1. 从当前分支中克隆一个新的分支:git branch -c <分支名称> ##从当前分支新建一个分支,并切换到新分支:git checkout -b <分支名称>
2. 将新建分支同步到远程仓库:git push origin <分支名称> ##不加分支名称,则把所有分支同步到远程仓库
3. 删除分支:git branch -d <分支名称>
4. 批量清理本地分支:git branch | grep '分支过滤关键字' | xargs git branch -D
5. 删除远程仓库分支:git push origin --delete <分支名称>
6. 查看当前项目的分支:git branch ##查看所有仓库分支,使用:git branch -a
7. 切换分支:git checkout <分支名称>
8. 将远程仓库已经存在的分支同步到本地仓库:git checkout <分支名称>
9. 合并其他分支代码到当前分支:git merge <其他分支名称>
三、git Tag管理
1. 查看当前存在的tag:git tag ##查看单个tag详情,可用命令:git show <tag名称>
2. 新建Tag:git tag <tag名称> ##带说明信息的tag,可用命令:git tag -a <tag名称> -m '<注释信息>'
3. 将新建的Tag同步到远程仓库:git push origin <tag名称> ##如果要把所有tag都同步到远程仓库,可用命令:git push origin --tags
4. 删除Tag:git tag -d <tag名称>
5. 删除远程仓库Tag:git push origin :refs/tags/<tag名称>
6. 将远程仓库Tag同步到本地:git fetch origin tag <tag名称>
四、git 日志查看
1. 查看全部提交日志:git log
2. 查看某个人的提交日志:git log --author=<str>
3. 依次查看详细的提交内容:git log -p ##如果要查看指定的一次提交记录, 后面加上 commitID即可
五、配置Git仓库
1. 配置用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
2. 秘钥
2.1 生成秘钥
ssh-keygen -t rsa -C "you@example.com"
2.2 添加sshkey至ssh-agent
2.2.1. 执行eval “$(ssh-agent -s)”确认ssh-agent处于开启状态,打印pid... 表示启用中;
2.2.2. 执行指令ssh-add ~/.ssh/id_rsa 添加ssh key至ssh agent
3. 添加sshkey至github
4. 测试连通性
ssh -T git@github.com
5. 本地项目和github项目建立连接
git remote add origin git@git.xxx.cn:tms/demo.git
6. 初始化项目,进入项目根目录
git init
六、从SVN迁出到本地Git仓库(还没有配置Git仓库的,直接看第八条)
git svn clone "<SVN项目路径>" ##注意路径需要双引号引起来
七、在远程仓库中新建对应名称的项目
http://git.xxx.cn (公司的gitlab地址)
八、将远程仓库项目与本地仓库代码做好映射
1. 建立与远程仓库的关联
git remote add origin git@git.xxx.cn:tms/demo.git
2. 将本地仓库代码同步到远程仓库
同步代码分支到远程仓库:git push -u origin --all
同步代码Tag到远程仓库:git push -u origin --tags