赞
踩
首先我们需要本地Git与远程GitHub连接的建立,只有将Git本地与远程的GitHub建立了连接以后我们本地的项目才能上传至远程服务器。
配置流程:
1、在git中配置全局的github账号信息:
- git config --global user.name "username"
- git config --global user.email "email"
2、Git终端的配置生成公钥文件,用来连接github。在git终端输入如下命令,然后连续敲3个回车即可:
ssh-keygen -t rsa -C "邮箱地址"
3、本地的配置
3.1 命令执行成功后,在本地电脑的名为.ssh的目录下找到名为id_rsa.pub的文件,打开这个文件后将里面的内容先复制下来;
3.2 这里还需要进行的一步操作是:为了防止git连接失败,可在.ssh文件夹下新建一个无后缀的名称为config的文件,在里面加入下面代码:
- Host github.com
- User git
- Hostname ssh.github.com
- PreferredAuthentications publickey
- IdentityFile ~/.ssh/id_rsa
- Port 443
4、远程的配置进入到GitHub的官网,点击右上角图标下的settings:然后,在出现的左边的settings栏目中选择SSH and GPG Keys:然后在出来的左边的框框中选择 New SSH:其中Title可以随意写个名字,Key里面的内容需要将3.1步中复制的id_rsa.pub文件中的内容拷贝进去最后点击Add即可。
5、验证连接是否成功建立在git终端上输入如下命令:
ssh -T git@github.com
出现下述状态即为成功
Git简单介绍及常见命令
说明:
一个简单的操作步骤:
- git init
- git add .
- git commit -m "自定义提交信息"
我们经常需要多个人共同完成一个项目,使用git可以很清晰明了的知道每个人上传的改动,因此我们需要配置好自己的用户名方便他人知道是谁更改了项目
1、查看用户名和邮箱地址:
- git config user.name
- git config user.email
2、修改用户名和邮箱地址
- git config --global user.name "xxxx"
- git config --global user.email "xxxx"
3、如果我们是直接拉下代码库
git clone 链接名
那么我们这个文件本身已经就是一个git文件了
4、如果我们是本地已有的文件去与远程代码库相关联的话,需要执行以下步骤:
- cd 文件/ #即需要进入这个文件
- git init #将文件初始化为git文件
- #与远程代码库添加链接
- git remote add origin 代码库链接
-
- #后续提交过程都一样
5、查看本地分支
git branch
注:名称前面加* 号的是当前的分支
6、在本地创建新的分支并切换到该分支上,develop是分支名称
git checkout -b develop
等价于
- git branch develop #在本地新创建develop分支
- git checkout develop #切换到新分支上
7、查看远程分支
git branch -r
8、查看所有的分支(包括本地分支以及远程分支)
git branch -a
加上-a参数可以查看远程分支,远程分支会用红色表示出来(如果你开了颜色支持的话)
9、查看本地分支与远程分支的映射关系
git branch -vv
10、重命名本地分支,oldbranch是旧的分支名称,newbranch是新命名的分支名称。
git branch -m <oldbranch> <newbranch>
11、删除本地分支,branchname是要删除的分支名称。
git branch -d branchname
12、删除远程分支,branchname是要删除的分支名称。
- git branch -r -d origin/branchname
- git push origin:branchname #删除后还需要推送到远程
13、查看当前远程仓库信息
git remote -vv
14、远程新建分支后,本地查看不到,使用以下命令同步
远程新建分支,本地在未创建此新分支前便已经clone下来,现在本地查看分支时没有发现远程新建的 分支,使用如下命令更新,即可查看远程新建的分支
- git remote #列出远程主机
- git remote update origin --prune #更新远程主机origin整理分支
15、当我们手动在远程分支上建立了一个新的分支,本地也有一个新的分支时,想要本地的新分支提交到这个远程的新分支上时,我们需要新建本地分支与远程分支的关联
git branch --set-upstream-to=origin/远程分支名 本地分支名
eg:我的本地新建了一个分支 hui 远程新建了一个分支v2 把二者进行关联起来
- git branch --set-upstream-to=origin/v2 hui
- 或者
- git branch -u orgin/v2 hui
- 如果此时已经在本地hui分支上,可以直接
- git branch -u origin/v2
输出:Branch 'hui' set up to track remote branch 'v2' from 'origin'.
16、如果本地有分支,但是远程没有分支对应,如何把本地的分支提交到远程
假设有本地分支dev_name,远端没有该分支。此时push或者pull时,就不知道跟踪的是哪个分支?使用以下指令:
git push --set-upstream origin dev_name
推送后远程也会出现dev_name分支,二者建立连接,注意此时的dev_name并不是你给远程分支起的名字,而是根据本地的分支推送上去的远程分支。后续push和pull时,就不用指定分支。
17、本地没有某个分支,远程仓库有此分支,怎样拉取远端分支代码到本地分支?
git checkout --track origin/branch_name
此时,本地会自动创建分支branch_name与远端分支同名,并与远端分支branch_name关联。
建议在弄分支的时候最好本地与远程的名字相同 便于区别
18、如果我们的本地文件已经关联了远程代码仓库,现在想关联新的代码仓库
一种方法是将原来的远程仓库重新命名,另一种是删除原来的远程仓库;二者选其一,然后再新关联现在的远程仓库即可
- #方法一:重命名原来的远程仓库
- git remote rename origin old-origin
-
- #方法二:删除原来的远程仓库
- git remote rm origin
-
- #上面的二选一,然后重新指定新的源
- git remote add origin [url]
19、撤销本地分支与远程分支的映射关系
git branch --unset-upstream
此时,当前的本地分支与远程分支解除关系
20、Git在本地新建分支后,可做远程分支关联。关联目的是,如果在本地分支下进行
pull 和push操作时 ,便不需要指定远程的分支。
21、新建本地分支与远程分支相关联
git checkout -b gpf origin/gpf # 新建本地分支gpf与远程gpf分支相关联
22、执行push推送代码
git push origin 本地分支名:远程分支名
23、本地分支push到远程分支
本地分支 v2 远程分支r2
如果没有建立关系时
- git push origin v2:r2
- 或者
- git push origin r2 #本地已经在v2分支上
如果已经建立关联 且目前的本地分支就在v2上 我们可以直接使用
git push
24、多人合作提交代码
- 在我们自己提交之前如果有别人提交了代码 我们需要先进行合并代码 再进行push
- 方案一:合并远程分支代码
- git fetch origin
-
- (git remote update有的时候可能需要同步一下远程和本地)
-
- git merge origin/远程分支名
-
- 方案二:合并远程分支代码
-
- git pull origin 远程分支名
-
- (PS:方案一和方案二选择一个即可)
-
- 执行push推送代码
- git push origin 本地分支名:远程分支名
25、git fetch 与 git pull的区别
git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突。
26、git fetch的常见命令如下:
- git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地,一般远程主机名为origin
-
- git fetch <远程主机名> <分支名> //注意之间有空格,返回的是特定分支的更新
-
- 例如:返回origin主机的main分支的更新 git fetch origin main
取回更新后,会返回一个FETCH_HEAD ,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:
git log -p FETCH_HEAD
可以看到返回的信息包括更新的文件名,更新的作者和时间,以及更新的代码(红色[删除]和绿色[新增])。
我们可以通过这些信息来判断是否产生冲突,以确定是否将更新merge到当前分支。
如果我们需要合并的话执行以下代码
git merge FETCH_HEAD
总结:fetch合并到分支需要两步
- git fetch origin main //从远程主机的main分支拉取最新内容
- git merge FETCH_HEAD //将拉取下来的最新内容合并到当前所在的分支中
27、git pull的常见用法
将远程主机的某个分支的更新取回,并与本地指定的分支合并
git pull <远程主机名> <远程分支名>:<本地分支名>
如果需要合并的本地分支就是目前的分支,则后面的本地分支名可以省略
28、还原代码至某个版本
git reset --hard 版本号
如果不加版本号,默认恢复上一个版本
29、合并分支到main上
首先切换到main分支上
git checkout main
如果是多人开发的话 需要把远程main上的代码pull下来
git pull origin main
然后我们把dev分支的代码合并到main上
git merge dev
30、查看状态
git status
31、git配置的一些其他的命令
- git status # 查看状态
- git log # 查看提交历史
- git config core.ignorecase false # 设置大小写敏感
- git config --global user.name "YOUR NAME" # 设置用户名
- git config --global user.email "YOUR EMAIL ADDRESS" # 设置邮箱
32、git的提交
- git diff # 查看变更内容
- git add . # 跟踪所有改动过的文件
- git add # 跟踪指定的文件
- git mv # 文件改名
- git rm # 删除文件
- git rm --cached # 停止跟踪文件但不删除
- git commit -m “commit message” # 提交所有更新过的文件
- git commit --amend # 修改最后一次提交
33.查看历史
- git log # 查看提交历史
- git log -p # 查看指定文件的提交历史
- git blame # 以列表方式查看指定文件的提交历史
34.撤销
- git reset --hard HEAD # 撤消工作目录中所有未提交文件的修改内容
- git reset --hard # 撤销到某个特定版本
- git checkout HEAD # 撤消指定的未提交文件的修改内容
- git checkout -- # 同上一个命令
- git revert # 撤消指定的提交分支与标签
35.分支与标签
- git branch # 显示所有本地分支
- git checkout # 切换到指定分支或标签
- git branch # 创建新分支
- git branch -d # 删除本地分支
- git tag # 列出所有本地标签
- git tag # 基于最新提交创建标签
- git tag -a "v1.0" -m "一些说明" # -a指定标签名称,-m指定标签说明
- git tag -d # 删除标签
- git checkout dev # 合并特定的commit到dev分支上
- git cherry-pick 62ecb3
36.合并与衍合
- git merge # 合并指定分支到当前分支
- git merge --abort # 取消当前合并,重建合并前状态
- git merge dev -Xtheirs # 以合并dev分支到当前分支,有冲突则以dev分支为准
- git rebase # 衍合指定分支到当前分支
37.远程操作
- git remote -v # 查看远程版本库信息
- git remote show # 查看指定远程版本库信息
- git remote add # 添加远程版本库
- git remote remove # 删除指定的远程版本库
- git fetch # 从远程库获取代码
- git pull # 下载代码及快速合并
- git push # 上传代码及快速合并
38.打包
- git archive --format=zip --output ../file.zip main # 将main分支打包成file.zip文件,保存在上一级目录
-
- git archive --format=zip --output ../v1.2.zip v1.2 # 打包v1.2标签的文件,保存在上一级目录v1.2.zip文件中
-
- git archive --format=zip v1.2 > ../v1.2.zip # 作用同上一条命令
39.远程与本地合并
- git init # 初始化本地代码仓
- git add . # 添加本地代码
- git commit -m "add local source" # 提交本地代码
- git pull origin main # 下载远程代码
- git merge main # 合并main分支
- git push -u origin main # 上传代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。