【git】git常用命令

拉取远程分支并创建本地分支

1
2
3
4
5
      } else {

        listener.Status.Reason = ""

        logger.Info(msg + " GetLoadBalancer ok", "listener", key, "lb id", listener.Spec.LoadbalancerId)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 使用该方式会在本地新建分支x,并自动切换到该本地分支x
git checkout -b 本地分支名x origin/远程分支名x
git checkout -b master origin/master

# dev合并到master
处于master分支
git merge origin/dev # merge到本地的master
git push

# 远程新建了一个分支feature,想在本地也建一个feature分支,但是在本地git branch -a的时候发现没有这个远程的origin/feature分支,怎么办?
1.首先将某个远程主机的更新,全部取回本地:git fetch
2.再次查看远程分支:git branch -a 发现远程的分支已经可以看见了。
3.然后拉取远程分支到本地:git checkout -b 远程分支名 origin/远程分支名


# git强制提交本地分支覆盖远程分支
git push origin 分支名 --force


# Git创建远程分支
假设当前分支为master,需要创建的分支是my-test
git checkout -b my-test //在当前分支下创建my-test的本地分支分支
git push origin my-test //将my-test分支推送到远程
git branch --set-upstream-to=origin/my-test //将本地分支my-test关联到远程分支my-test上
git branch -a //查看远程分支




git打tag

1
2
3
4
5
6
7
8

# 打标签
git tag -a v1.4 -m "my version 1.4"
git tag v1.4-lw
git tag
git show v1.4 # git show 命令可以看到标签信息和与之对应的提交信息
git push origin v1.5 #将本地v1.5的tag推送到远端服务器

git撤回上次commit

1
2
3
git reset --soft HEAD^      仅仅是撤回commit操作,写的代码仍然保留。
= git reset --soft HEAD~1
git reset --soft HEAD~2 如果进行了2次commit,想都撤回

git撤回上次push

1
2
3
4
5
6
7
8
9
10
11
可以用git log 查看你要回到的那个版本

接着用
git reset --hard HEAD^ 回退到上个版本
git reset --hard commit_id 退到/进到 指定commit_id

最后将本地的修改提交到远程
git push origin HEAD --force

## 注意,这样子修改,之前commit的信息就没了,本地的也没了,需要提前保存相关信息

git建立本地仓库并推送到远程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1. github新建一个仓库

1. **在本地test 项目中使用 git init 把其变成git可以管理的仓库**,
打开test项目文件夹,右键选择git bash命令行工具,输入:
**git init**
就可以把此时的test项目变成git可以管理的仓库

2. **添加文件夹下所有文件到暂存区**
可以用命令 git add ‘’filename‘’ 添加**单个文件**
也可以用命令 **git add . 把**文件夹下所有文件添加到缓存区(注意add和.之间有个空格)

3. **把文件提交到仓库 ;**
使用命令行: **git-commit -m “提交描述”**

4. ****关联远程仓库** **
使用命令行:git remote add origin 你的远程仓库url地址** ;

5. **获取远程库与本地同步(远程仓库不为空需要这一步)**
使用命令行:**git pull --rebase origin master**

6. **把本地内容推送到远程库** 。
使用命令行:**git push -u origin master**

强制删除本地分支和远程分支

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1 先切换到别的分支: git checkout dev_20180927

2 删除本地分支: git branch -d dev_20181018

3 如果删除不了可以强制删除,git branch -D dev_20181018

4 有必要的情况下,删除远程分支:git push origin --delete dev_20181018



作者:追逐繁星的阿忠
链接:https://www.jianshu.com/p/9fbe77ad1058
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68



## 报错解决

### git checkout -b xxx origin/xxx 报错

```bash
[root@ningan dubhe]# git checkout -b dev_230109 origin/dev_230109
fatal: 'origin/dev_230109' is not a commit and a branch 'dev_230109' cannot be created from it

[root@ningan dubhe]# git branch
* anwy-dev
anwy-test
master
rc1
rc2
rc2-0.1.4
rc2-testable
rc2-testable2


## 解决办法
[root@ningan dubhe]# git pull
remote: Enumerating objects: 39, done.
remote: Counting objects: 100% (39/39), done.
remote: Compressing objects: 100% (35/35), done.
remote: Total 39 (delta 12), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (39/39), done.
From http://gitlab.tianti.tg.unicom.local/cloudStorage/tgStack/dubhe
* [new branch] dev_230109 -> origin/dev_230109
Already up to date.
[root@ningan dubhe]#
[root@ningan dubhe]# git branch
* anwy-dev
anwy-test
master
rc1
rc2
rc2-0.1.4
rc2-testable
rc2-testable2
[root@ningan dubhe]#
[root@ningan dubhe]# git checkout -b dev_230109 origin/dev_230109
M Makefile
M config/cuk-config.cue
D config/kubeconfig-n2
M config/regionConfig.yaml
M go.mod
M go.sum
M pkg/utils/common_vars_insert.go
M pkg/utils/common_vars_insert_test.go
Branch 'dev_230109' set up to track remote branch 'dev_230109' from 'origin'.
Switched to a new branch 'dev_230109'
[root@ningan dubhe]#

[root@ningan dubhe]# git branch
anwy-dev
anwy-test
* dev_230109
master
rc1
rc2
rc2-0.1.4
rc2-testable
rc2-testable2


参考

# git同步远程仓库分支


【git】git常用命令
http://example.com/2022/12/15/git/【git】git常用命令/
作者
ningan123
发布于
2022年12月15日
许可协议