Git 备忘

本文详细介绍了在Linux环境下使用Git进行本地与GitHub仓库的关联、SSH秘钥配置、克隆、推送、同步操作,以及如何解决常见部署过程中遇到的权限问题。同时,提供了忽略文件、创建空分支、日常开发流程、fork项目、代码提交规范等内容,帮助开发者高效完成代码部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=medium]一.安装

linux 1.redhat:yum install git
2.ubuntu:apt-get install git

windows 下载[url]http://msysgit.github.io/[/url]安装,一切默认

设置用户名及邮箱
git config --global(local为仓库级) user.name "your name"
git config --global user.email "youremail@***.com"

二.关联github

获取ssh秘钥:ssh-keygen -t rsa -C "youremail@***.com"
将当前用户目录下 ~/.ssh/id_rsa.pub(公钥)内容添加至github的ssh key(相当于防伪标识)
关联远端仓库:git remote add origin git@github.com:yourgithubName/yourRepo.git
查看仓库地址:git remote -v

三.克隆 、推送、同步

克隆:git clone git@github.com:yourgithubName/yourRepo.git
推送:(git push <远程主机名> <本地分支名>:<远程分支名>)git push origin branchname(一般为主分支master视开发情况而定)
同步:(git pull <远程主机名> <远程分支名>:<本地分支名>)git pull origin 若出错提示无当前分支追踪信息,则 git branch --set-upstream 本地分支 origin/远端分支 使本地分支与远端关联
git pull origin master ----allow-unrelated-histories

四.自己玩

创建分支:git branch branchname
切换分支:git checkout (-b 并创建) branchname
删除分支:git branch -d branchname
合并分支:git merge branchname
查看分支:git branch
查看远程分支:git branch -r
查看所有分支:git branch -a
获取远程分支:git checkout -b 本地分支名 远程分支名
删除远程分支:git branch -r -d origin/branch-name

添加文件:git add filename(暂存区)
提交文件:git commit -m "your comment"

雪藏未提交修改:git stash
查看雪藏:git stash list
回复雪藏:git stash apply [stash@{1}]
删除雪藏:git stash drop [stash@{1}]
弹出雪藏:git stash pop

查看状态:git status
查看提交历史:git log (--graph 图形)
比较差别(当前与repo):git diff filename
查看命令历史:git reflog

退回到某一次提交:git reset --hard commitId(丢掉commitId后的提交内容)
git reset --soft commitId(commitId后的提交内容退回工作区)
撤销工作区的修改:git checkout -- filename

在提交代码(push -u origin master)的过程中如果遇到“Permission denied (publickey,gssapi-keyex,gssapi-with-mic).”错误
Windows:
1. 打开CMD
2. echo. host github.lngtop.com >> %HOMEPATH%\.ssh\config
3. echo. hostname github.lngtop.com >> %HOMEPATH%\.ssh\config
4. echo. port 2222" >> %HOMEPATH%\.ssh\config
Linux/MacOS:
1. echo -e "host github.lngtop.com\nhostname github.lngtop.com\nport 2222" >> ~/.ssh/config
(github.lngtop.com 换成自己在github上的repo地址)

五.
1.忽略部分文件(如编译后的class文件、settings等 不必提交到远端的东东)
在代码目录下新建.ignore文件,内如如下
*.class //要忽略的文件后缀名 *为通配符
*.classpath
*.project

pay/.settings/ //要忽略的路径
pay/WebRoot/WEB-INF/classes/
如果这些文件还没提交到远端,一切Ok。
若果已经提交了 那么需要先 git rm(settings要先备份) 再重新 git commit ,然后再git push提交到远端(再将备份还原)。以后git 就不会再检查这些文件了

2.创建空分支
git checkout --orphan branchname(新建分支没有commit log,但内容俱全)
git rm -rf . 清空所有内容(此时branchname分支为空,执行commit后分支可见)

六.日常工作流程

1.git checkout develop(若develop分支已存在) 切换到日常开发分支
2.git pull origin develop 同步远程develop到本地develop分支
3.git checkout -b feature1 基于develop分支创建并切换到feature1分支

4.开始开发...完成后commit(可以有多个)

5.git checkout develop 切换到develop分支
6.git pull origin develop 再次同步远程develop到本地develop分支,因为有可能在自己进行开发时别人向远程提交了代码,这时要在提交前保持本地与远程同步
7.git checkout feature1 再次切换到feature1分支
8.git rebase develop
1)没有冲突:
git push origin feature1:develop 将本地feature1分支推送至远程develop分支
2)有冲突:
修改冲突文件
git add .
git rebase --continue 继续rebase (git rebase --abort 取消rebase 回到rebase开始前的状态)
git push origin feature1:develop 将本地feature1分支推送至远程develop分支
七.fork别人的项目clone到本地后,远程分支有修改,需要同步远程分支,使得本地代码与远程分支一致。


1、git remote -v:
orgin:为本地分支的
upstream:为远程分支

2、git remote add upstream <原作者项目的URL>(上一步操作没有upstream,则需要添加uptream)
完成后,执行git remote -v确认与上图一致。

3、git fetch upstream 将远程分支同步到本地
4、git checkout master 检查本地代码变更
5、git merge upstream/master 合并分支

[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值