Git基础操作
拉取代码
使用clone复制远程仓库
git clone git@gitee.com:chen-LinQiang/my-notes.git
在已有仓库中拉取代码
# 初始化
git init
# 关联远程仓库
git remote add origin git@gitee.com:chen-LinQiang/my-notes.git
# 切换到本地主分支
git checkout master
# 若报错error: pathspec 'master' did not match any file(s) known to git.
# git fetch # 获取全部分支,若无效,则
# git fetch origin # 获取远程分支
# git branch -vv # 查看分支关联情况
# 拉取代码
git pull
推送代码
使用git push将代码推送至远程仓库
git push -u origin master
相当于
git branch --set-upstream-to=origin/master master//将远程仓库origin的master分支与本地仓库master分支关联
加
git push origin master
基础操作
创建本地仓库
mkdir local_repository
初始化本地仓库
git init
----
Initialized empty Git repository in D:/cc/learngit/.git/
关联远程仓库
git remote add origin git@gitee.com:chen-LinQiang/test_project.git
扩展:删除关联(git remote rm origin)
检查关联是否成功
git remote -v
----
origin git@gitee.com:chen-LinQiang/test_project.git (fetch)
origin git@gitee.com:chen-LinQiang/test_project.git (push)
跟踪某个文件
git add a.txt
批量跟踪所有工作目录下未被跟踪的文件
git add .
每次修改后都要重新add,否则commit上去的为上次add的版本
查看文件状态
“Untracked files”:未被跟踪的文件
“Changes to be committed”:暂存状态,commit后将留存版本在历史记录中
查看内容差异
# 查看尚未暂存的文件更新了哪些部分
git diff
# 查看已经暂存起来的文件和上次提交时的快照之间的差异
git diff --cached
跳过使用暂存区域
# 加上-a选项,Git就会自动把所有已经跟踪过的文件暂存起来一并提交
git commit -am "test"
[注意] git commit -am可以写成git commit -a -m,但不能写成git commit -m -a
从暂存区域移除文件
git rm --cached a.txt
会删除所有被跟踪,但在工作目录被删除的文件
git rm $ (git ls-files --deleted)
撤销操作
-
修改提交说明
git commit --amend
[注意] 此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样。
推送到远程仓库
git push origin master
# -u 记住推送地址及分支,下次推送只需要输入git push即可
git push -u origin master
查看文件提交历史
git log ./path/to/file
文件移动或rename后,查看完整历史提交记录
git log --follow ./path/to/file
简洁查看提交历史
git log --pretty=oneline filename
# 查看分支所有提交历史
git log --pretty=oneline
分支操作
查看分支
git branch # 查看本地分支
git branch -r # 查看remote分支
git remote # 查看remote分支
git branch -a # 查看本地分支以及remote分支
git branch -vv # 查看本地和远程分支的对应关系
创建分支
# 创建本地分支
git branch <name>
# 创建新分支并立即切换到新分支
git checkout -b <name>
# 创建远程分支
git push origin <name>
删除分支
# 删除本地分支
git branch -d <name>
回滚操作
已提交,没有push
# 只撤销commit操作
git reset --soft <commit_id>
# 撤销commit和add两步操作
git reset --mixed <commit_id>
已提交,并且push
# 撤销并舍弃版本号之后的提交记录
git reset --hard <commit_id>
# 撤销,但保留了提交记录
git revert <commit_id> # 注意id为要撤销的commit id
关键字
origin
origin的意思是指“远程仓库”,就是远程仓库链接的别名,是在clone一个托管在Github上代码库时,git默认创建的指向这个远程代码库的标签,origin指向的就是本地的代码库托管在Github上的版本。
git clone https://github.com/user1/repository
git remote -v
----
origin https://github.com/user1/repository.git (fetch)
origin https://github.com/user1/repository.git (push)
git为你默认创建了一个指向远端代码库的origin