【Git】Git常见用法总结

Git安装

1、Ubuntu安装

首先,确认你的系统是否已安装git,可以通过git指令进行查看,在命令行模式下输入git --version查看git的版本,

xxx@ubuntu:~$ git --version
git version 2.34.1

如果没有安装,则输入如下命令进行安装

xxx@ubuntu:~$ sudo apt-get install git

2、windows安装

git下载网址

https://git-scm.com/download/win

Git配置

1、配置Git,生成公钥

# 配置全局用户
$ git config --global user.name "用户名" 
$ git config --global user.email "git账号"
# 生成ssh key
$ ssh-keygen -t rsa -C "git账号" # 注意:输入该命令后要一直回车

2、更新公钥至代码仓

1)ubuntu公钥路径:~/.ssh/id_rsa.pub

2)win公钥路径:C:\Users\Administrator.ssh\id_rsa.pub

Git常见命令

代码下载

ssh的克隆方式

1、只有配置git,将生成的密钥更新到代码仓,才能进行代码更新

2、ssh方式默认的下载端口为22,如果服务器的端口号不是22,需要进行如下配置

新建文件:
$ vi ~/.ssh/config
或打开配置文件:
$ vi /etc/ssh/ssh_config
http的克隆方式
# 代码下载命令
$ git clone [url]

代码更新

# 将远程信息更新到本地,包括新增的branch、commit和tag等信息
$ git pull

# 拉取指定分支的更新
$ git pull origin develop

分支管理

拉新分支
# 拉新分支的命令
$ git checkout -b (branchname)

# 基于某个分支拉取开发分支
$ git checkout <branchA>(base branch)
$ git checkout –b branchB(new branch base branchA)

# 基于某个commit点拉取分支
$ git checkout <commitA>
$ git checkout –b branchB(base commitA )

# 基于某个Tag拉取分支
$ git checkout <TagA>
$ git checkout –b branchB(base TagA)

# 注意:拉分支前先用git pull命令同步远程信息(branch/commit等)
分支切换
# 切换到现有的某个分支
$ git checkout(branchname)

# 注意:branchname可以是本地分支,也可以是远程的分支,但是一定要是现有的分支
分支操作
# 查看本地分支
$ git branch
# 查看远程分支
$ git branch -r
# 查看本地和远程分支
$ git branch -a
# 新建本地分支但不切换
$ git branch [branchName]
# 删除本地分支,会阻止删除包含未合并更改的分支
$ git brnach -d branchname 
# 强制删除一个本地分支,即使包含未合并更改的分支
$ git branch -D branchname  
# 重新命名分支
$ git branch -m [oldBranchName] [newBranchName]
# 删除远程分支
$ git push origin --delete 远程分支名 

添加到暂存区

# 添加指定文件至暂存区
$ git add [file1] [file2]
# 添加指定目录至暂存区
$ git add [dir]

$ git add . 
# 操作的对象是“当前目录”所有文件变更,"."  表示当前目录。会监控工作区的状态树,使用它会把工作区的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new)。
$ git add -u 
# 操作的对象是整个工作区已经跟踪的文件变更,无论当前位于哪个目录下。仅监控已经被 add 的文件(即 tracked file),它会将被修改的文件(包括文件删除)提交到暂存区。git add -u 不会提交新文件(untracked file)。(git add --update 的缩写)
$ git add -A 
# 操作的对象是“整个工作区”所有文件的变更,无论当前位于哪个目录下。是上面两个功能的合集(git add --all 的缩写)

查看状态

# 查看工作区和暂存区的状态
$ git status 

提交代码修改

# 提交并添加描述
$ git commit -m "本次提交的说明"  
# 将修改添加到暂存区,提交并添加描述,相当于 git add -A 和 git commit -m ''
$ git commit -am "本次提交的说明"  # 比较危险,不建议使用

# 修改最新一次提交的描述信息。
$ git commit –-amend
$ git commit --amend -m "提交描述"

代码合并

合并所有修改
$ git merge 
合并某一个或者几个修改
# 将分支切换到 branch1 分支
$ git cherry-pick <commit_id1>
# 将分支切换到 branch1 分支
$ git cherry-pick <commit_id1> <commit_id2>

# 将branch2中的修改(f)拿到到branch1,可执行如下命令行
$ git checkout branch1
$ git cherry-pick <commit_f>

管理跟踪远程仓库

# 查看连接的远程仓库地址
$ git remote -v
# 为本地仓库添加远程仓库地址
$ git remote add origin [gitUrl]
# 将本地仓库的master和远程仓库的master进行关联
$ git push -u origin master
# 为本地仓库修改远程仓库地址
$ git remote origin set-url [gitUrl]
# 添加远程代码仓到本地(两个仓公用本地代码,可以用该命令)
$ git remote add <shortname> <url>

标签操作(Tag)

# 新建标签
$ git tag [tagName]
# 查看标签列表
$ git tag 
# 删除标签
$ git tag -d [tagName] 
# 推送标签到远程仓库
$ git push origin [tagName]

代码推送

# 新建标签
$ git tag [tagName]
# 查看标签列表
$ git tag 
# 删除标签
$ git tag -d [tagName] 
# 推送标签到远程仓库
$ git push origin [tagName]

分支变基

# 请参考如下
https://www.yiibai.com/git/git_rebase.html

撤销修改

# 从暂存区撤销特定文件,但不改变工作区。它会取消这个文件的暂存,而不覆盖任何更改
$ git reset <fileName>

# 重置暂存区最近的一次提交,但工作区的文件不变
$ git reset 等价于 $ git reset HEAD (默认)

# 重置暂存区与工作区,回退到最近一次提交的版本内容
$ git reset --hard 
# 重置暂存区与工作区,回退到最近一次提交的上一个版本,比如说本地commit了,但是发现错了,想要删除这个commit,可以用
$ git reset --hard HEAD^ 

# 将当前分支的指针指向为指定 commit(该提交之后的提交都会被移除),同时重置暂存区,但工作区不变
$ git reset <commit>
# 等价于 
$ git reset --mixed <commit>

# 将当前分支的指针指向为指定 commit(该提交之后的提交都会被移除),但保持暂存区和工作区不变,可能会有冲突
$ git reset --soft <commit>
# 将当前分支的指针指向为指定 commit(该提交之后的提交都会被移除),同时重置暂存区、工作区
$ git reset --hard <commit>

版本回滚

# 生成一个撤销最近的一次提交的新提交
$ git revert HEAD 
# 生成一个撤销最近一次提交的上一次提交的新提交
$ git revert HEAD^ 
# 生成一个撤销最近一次提交的上两次提交的新提交
$ git revert HEAD^^ 
# 生成一个撤销最近一次提交的上n次提交的新提交
$ git revert HEAD~num 

# 生成一个撤销指定提交版本的新提交
$ git revert <commit_id>
# 生成一个撤销指定提交版本的新提交,执行时不打开默认编辑器,直接使用 Git 自动生成的提交信息
$ git revert <commit_id> --no-edit

修改保存至堆栈

# 将所有未提交的修改(提交到暂存区)保存至堆栈中
$ git stash 
# 给本次存储加个备注,以防时间久了忘了
$ git stash save "存储"
# 存储未追踪的文件
$ git stash -u

# 查看存储记录
$ git stash list

# 恢复后,stash 记录并不删除
$ git stash apply "stash@{index}"
# 恢复的同时把 stash 记录也删了
$ git stash pop "stash@{index}"
# 删除stash记录
$ git stash drop "stash@{index}"
# 删除所有存储的进度
$ git stash clear
# 查看当前记录中修改了哪些文件
$ git stash show "stash@{index}"
# 查看当前记录中修改了哪些文件的内容
$ git stash show -p "stash@{index}" 

猜你喜欢

转载自blog.csdn.net/m0_61011506/article/details/129729500