常用命令
-
git init
将一个普通文件夹变成git仓库,此时文件夹下多出.git文件夹,表示可以使用git管理,此时这个文件夹称为git工作区
或者
使用git clone url(github上的仓库链接)将仓库从github上下载下来
当对工作区内的文件做出修改后
-
git add 文件名
表示将该文件的修改加入到暂存区
-
git add .
(注意后面有个 . )表示将当前目录下的所有文件的修改都加入到暂存区
-
git commit -m “备注信息”
表示将暂存区的修改提交到当前分支,提交之后暂存区清空
-
git push -u origin master
将分支上的修改更新到github上
撤回修改
-
git log 查看提交记录,获取commit id
-
git reset – 文件名 或者 commitId
使用当前分支上的修改覆盖暂存区,用来撤销最后一次 git add files
-
git checkout – 文件名
使用暂存区的修改覆盖工作目录,用来撤销本地修改
删除
-
git rm 文件名
删除暂存区和分支上的文件,同时工作区也不需要这个文件,之后commit保存到分支
-
git rm -r –cached 文件夹名
删除暂存区的修改,之后再commit保存到分支,如果不小心提交了不想提交的文件到分支上,此时想删除刚刚不小心提交的文件同时保留工作目录的文件时使用
更新
-
git pull origin master
更新线上修改到本地分支
查看状态
-
git status
可以查看本地和分支哪些文件有修改
几个容易混淆的命令
- git rebase 和 git merge
效果都是合并,merge时可以看到被merge的分支以及其提交记录,不破坏被merge分支的代码提交记录;rebase是直接把两个分支合并,被合并的分支就像在原来的分支上开发一样,不会新增提交记录到目标分支,形成线性提交的历史记录。
合并代码到公共分支的时候使用git merge
合并代码到个人/功能分支时使用git rebase
- git pull 和 git fetch
效果都是更新远程仓库到本地,fetch是将远程仓库的内容拉到本地,用户检查只会再决定是否合并;pull是将远程仓库的内容拉到本地后直接合并,pull = fetch + merge
- git reset 和 git revert
效果都是撤销,reset回退版本会丢失回退前的提交信息,revert则不会,revert会重新创建一个新的提交,新的提交内容是指定的commitId对应的内容,原有的提交得到保留。