首页 > 技术文章 > git 常用命令

xiaxuexiaoab 2020-03-19 22:20 原文

1. 初始化

git init                //  初始化当前目录为Git仓库
git init filePath       //  指定目录作为Git仓库

2. 检查状态

git status              // 检查状态

3. 添加和删除文件

git add filename          // 添加
git add -f filename       // 强制添加
git rm filename           // 删除

4. 提交版本

如果您不使用-m,会出现编辑器来让你写自己的注释信息。

当我们修改了很多文件,而不想使用git add命令,直接使用commit自动来提交本地修改,我们可以使用-a标识。

git commit -m "add file" 
git commit -a -m "add some file"

5. 发布版本

git push origin master     // 以master分支发布

6.取回更新

git pull            // 所有分支
git pull origin A   // 指定A分支

7.分支

git branch branch_name                                      // 创建分支
git checkout branch_name                                   // 切换分支
git branch -d branch_name                                  // 删除分支
               
// 将其他分支的更改提交到主分支,则需切换回master分支,然后使用合并
git checkout master
git merge branch_name 
  
// 将部分代码从一个分支转移到另一个分支是常见需求。 
参考[cherry-pick](https://ruanyifeng.com/blog/2020/04/git-cherry-pick.html)
git cherry-pick commit-id1 commit-id2 

如果有冲突,则`git status`查看冲突,解决后`git add .`,然后`git cherry-pick --continue`

8.更换远程链接

git remote -v // 查看
git remote set-url origin URL // 设置为URL

9.子分支修改

git branch -a                // 查看所有分支
git checkout -b sub_branch   // 创建并切换分支
git fetch                    // 检查远程仓库是否更新
git pull origin master       // 拉取最新master分支
TODO Something               // 进行操作 
git add .                    // 添加所有  
git commit -m "do something" // 提交 
git push origin sub_branch   // 推送 
git branch -D sub_branch     // push成功后删除本地分支

10.master合并分支

git fetch 
git pull origin master                        // 拉取最新master分支 
git branch -a 
git merge origin/sub_branch 
git push origin master 
git push origin --delete sub_branch           // push成功后删除远程分支

11.删除分支

git branch -D branch_name                   // 删除本地分支 
git push origin --delete branch_name        // 删除远程分支

11.回退

回退可参考git reset 三种模式

  • 已经Commit
git reset --soft commit-id   // 回退到指定commit soft表示保留修改
  • 还未add
git checkout --file
  • 已经add
git reset HEAD <路径/文件名>

在远程分支上新建分支

git checkout -b A --track origin/A          // 也可先切换到远程分支, 再创建

查看子分支父分支

git reflog show 'sub_branch name'

12. stash操作

分支修改暂不提交,切换其他分支

git stash                  // 当前分支保留
git checkout other_branch  // 切换至其他分支
// doing something
git checkout branch        // 切换回当前分支
git stash pop              

分支stash不小心删除恢复

1.首先输入:
git fsck --lost-found
会看到 一条一条的记录 类似:

dangling commit 6cb2480fa3a59c140b58a07ac734838a2d958d44
dangling commit e9b4c85c437aacf628e724903df21648538963d4
dangling blob 983515c6f78d232f1c8878e98598218c142aa9b9
dangling commit 4ab67a050c5a8288da28154f79ea89106918ea36
dangling commit c2363d6a03dad8f2bc986f8d21ab0fa38c74477b
dangling blob 4338d18c5224397a03b40548b7e0f1ea9ca3ffff
dangling commit 17398e4d6e8cec82081b2d94f61a367c1243b727
dangling commit 14bae3242e6a2b19132d9f8d9ad2c05736eba395

2.复制dangling commit 的id(其他的dangling blob不用关心)

3.然后输入
git show 6cb2480fa3a59c140b58a07ac734838a2d958d44

3.1查看具体内容, 找到你想要的记录
记录中会描述日期和摘要,
日期是你git stash 的日期(这里很重要),
摘要会记录你是在哪一条commit 上进行git stash操作的,
类似(commit 1c4c8073f32f02be27a3fd6107ea4e77af5932b3
Merge: 9374eb7 c0ac76f
Date: Mon Oct 14 11:35:25 2019 +0800

WIP on master: 93844b7 fix some bugs)

4.找到你想要的记录后输入
git merge 6cb2480fa3a59c140b58a07ac734838a2d958d44

推荐阅读