git 命令基本使用

1、git整体流程图

img

2、公司代码管理仓库/自己的GitHub上的仓库(远程仓库已经存在的情况下)

1、git clone 检出远程仓库的地址

例如:git clone git@github.com:labuladong/fucking-algorithm.git

2、git pull 拉取远程代码到本地 (每次开发之前/每次merge提交之前 建议都git pull 一下远程仓库)

git pull [remoteName] [localBranchName]

可以直接git pull 默认拉取远程地址的master分支

3、git branch 分支操作

查看本地分支:git branch

查看远程分支:git branch -r

每次在开发时,建议自己在本地建一个分支dev,不要直接在master分支上操作。

创建新分支并立即切换到新分支: git checkout -b [name]

例如:git checkout -b dev

在切换到自己开发分支后,你可以愉快的开发了

----------- 开发开始 ---------

开发中

---------- 开发结束 ----------

4、查看状态 git status

你想查看修改了那些文件,可以使用这个命令

5、添加文件到index

git add 文件名 或者目录

例如:git add feature_1.txt

你可以像上面一个个添加文件到追踪索引,也可以把全部的修改文件添加到追踪索引

git add .

不建议偷懒这样做,除非你很确定。

6、提交 git commit

git commit -m "消息"

例如:git commit -m "add context in file "

[tips]

第5、6这两步可以合在一起

git commit -am "消息"
但是不建议这样做,a表示所有的文件,容易把你不需要的文件也添加到追踪了

7、查看当前分支的提交记录 git log

例如:git log -n (n表示记录个数,默认应该是20个,可以修改默认参数的,但是个人觉得没有必要)

有提交日志表示之前的添加和提交都成功了。

8、回到主分支 && 拉取最新远程代码

git checkout master

git pull (养成好习惯)

9、merge你开发的分支代码到主分支

git merge dev

10、推代码到远程服务端

git push

简单的git代码使用就差不多了。

11、还有以下回滚、git stash等操作。

git add 的后撤

所有文件

git reset HEAD .

单个文件
git reset HEAD - filename (- 可以去掉 直接文件名就可以了)

git commit 回滚

如果你只是提交的信息感觉需要修改或者错误了,你可以使用下面的命令修改即可

git commit --amend

会进入到vim 模式

如果是直接向撤销commit。可以使用下面的参数

--soft

不删除工作空间改动代码,撤销commit,不撤销git add .

git reset --soft HEAD^

--hard

删除工作空间改动代码,撤销commit,撤销git add .

注意完成这个操作后,就恢复到了上一次的commit状态。

如果是想退到某个提交上。可以直接使用

git reset --hard commitID

HEAD^ 第一个CommitID

HEAD^^ 第二个CommitID

以此类推

stash:

git stash list

git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来

(1)git stash save "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。

(2)git stash list :查看stash了哪些存储

(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}

(4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p

(5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}

(6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}

(7)git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储

(8)git stash clear :删除所有缓存的stash

pop和apply都是应用,且可以选择应用哪一个,唯一的区别是前者应用且删除,后者只应用不删除

git status可以参考:https://www.jianshu.com/p/cddbcbdcc600

[tips] 没有在git 版本控制中的文件,是不能被git stash 存起来的

Git 常用命令

git branch 查看本地所有分支
git status 查看当前状态
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看本地所有分支
git commit -am "init" 提交并且加注释
git remote add origin git@xxx.xxx.xxx
git push origin master 将文件给推到服务器上
git remote show origin 显示远程库origin里的资源
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联
git checkout --track origin/dev 切换到远程dev分支
git branch -D master develop 删除本地库develop
git checkout -b dev 建立一个新的本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add .
git rm 文件名(包括路径) 从git中删除指定文件
git clone xxxxxxx.git 从服务器上将代码给拉下来
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git commit -a 提交当前repos的所有的改变
git add [file name] 添加一个文件到git index
git commit -v 当你用-v参数的时候可以看commit的差异
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cached a.a 移除文件(只从暂存区中删除)
git commit -m "remove" 移除文件(从Git中删除)
git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff --cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来
---------------------------------------------------------
git remote add origin xxxxxx.git
git push origin master 将本地项目给提交到服务器中
-----------------------------------------------------------
git pull 本地与服务器端同步
-----------------------------------------------------------------
git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。
git push origin serverfix:awesomebranch
------------------------------------------------------------------
git fetch 相当于是从远程获取最新版本到本地,不会自动merge
git commit -a -m "log_message" (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :
git branch branch_0.1 master 从主分支master创建branch_0.1分支
git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0
git checkout branch_1.0/master 切换到branch_1.0/master分支
du -hs

-----------------------------------------------------------
mkdir WebApp
cd WebApp
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin xxxx.git
git push -u origin master

分支共有5种类型

  1) master,最终发布版本,整个项目中有且只有一个

  2) develop,项目的开发分支,原则上项目中有且只有一个

  3) feature,功能分支,用于开发一个新的功能

  4) release,预发布版本,介于develop和master之间的一个版本,主要用于测试

  5) hotfix,修复补丁,用于修复master上的bug,直接作用于master

切换远程仓库地址

查看远程仓库地址

git remote -v

例如:

注:本文中的url全部需根据自身情况修改

1、直接修改远程仓库地址

git remote set-url origin url

2、删除本地远程仓库地址,然后添加新的仓库地址

git remote rm origin
git remote add origin url

3、修改配置文件
每个仓库在初始化时,都会有一个 .git 的隐藏目录,修改其中的 config 文件中的 url

git在线练习

如果对git不熟悉的话,请在线练习git命令,传送门--------->git分支练习

git 提交规范

规范参考链接为:
Git 协同与提交规范
Git commit message规范

posted @ 2020-11-01 23:34  独孤剑—宇枫  阅读(666)  评论(0编辑  收藏  举报