天天看点

Git 相关命令用法合集

Git 相关命令用法合集

mkdir 创建版本库(文件夹)

pwd 显示当前目录

git init 把当前目录变成git可以管理的仓库

ls -ah 显示当前目录中的隐藏文件

Git 添加文件需要两步:

(1) git add 把某文件添加到仓库

(2) git commit -m " 本次提交说明 " 把该文件提交到仓库

(可以多次add不同的文件,用一个commit来描述这次提交)

git status 显示仓库的当前状态

git diff + 文件名 查看修改的具体内容

git log 查看提交记录 + (--pretty=oneline)精简输出信息为一行;以便确定要回退到哪个版本

git reflog 查看命令历史,以便确定要回到未来的哪个版本。

git 中 HEAD 表示当前版本:

git reset --hard HEAD^ 回退到上一个版本;

(HEAD^^表示回退到上上个版本;HEAD~100回退到前100个版本)

cat + 文件名 显示当前文件的内容

git reset --hard + 版本id的前几位数字 重新回到未来的某个版本

工作区:电脑上能看到的文件目录,如 Learn_git

版本库:工作区的隐藏目录 .git,其中包括最重要的暂存区stage和自动创建的master分支

git add 命令实际上就是把要提交的所有修改放到暂存区(Stage),

然后,执行 git commit 就可以一次性把暂存区的所有修改提交到分支。

1.若修改还未添加到暂存区:

命令git checkout -- readme.txt就是,把readme.txt文件在工作区的修改全部撤销,有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

2.若只是添加到了暂存区还没有提交:

git reset HEAD + 文件名 可以把暂存区的修改撤销掉(unstage),重新放回工作区

3.若修改已经提交到了版本库:

采用版本回退命令:git reset --hard HEAD^ 回退到上一个版本;

rm test.txt 在文件管理器中删除文件:

(1) 确实从版本库中删除文件: git rm test.txt 然后 git commit -m

(2) 删错了,但版本库中还有,把误删恢复: git checkout -- test.txt

git checkout 其实是用版本库里的版本替换工作区的版本,无论工作区是修改or删除,都可以还原。

添加远程库:

(1) 创建SSH key 命令 :ssh-keygen -t rsa -C "[email protected]"

(2) 登陆GitHub,打开 “Account settings”,“SSH Keys”页面:

(3) 点 “Add SSH Key”,填上任意Title,在Key文本框里粘贴用户主目录中.ssh中 id_rsa.pub的内容:

git remote add origin [email protected]:wangjinxile/Learn_git.git 关联一个远程库

git push -u origin master 把本地库上的内容推送到远程库上

git push origin master 之后需要提交至远程的命令

从远程库更新至本地

git pull

从远程库克隆:

git clone [email protected]:wangjinxi/xxxxx.git

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

分支变化情况的直观展示: git log --graph --pretty=oneline --abbrev-commit

git merge --no-ff -m "merge with no-ff" dev禁用fast-forward分支合并形式,删除分支后仍能看出合并

当手头工作没有完成时,git stash 存储工作现场,

git stash list 查看工作现场列表,git stash apply stash@{0} 指定恢复列表中的哪一个现场

恢复现场时:

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了:

git branch -D feature-vulcan 强行删除没有合并的分支

git remote (-v) 查看远程仓库(详细)信息

git push origin master 推送合并本地同名的master分支(主分支需要及时合并)

git 的标签是指向某个commit ID的指针:

(1) 切换到需要打标签的分支

(2) git tag v1.0 打标签 + ID号 对指定ID的分支打标签

(3) git tag 查看标签 -d + 标签名 删除

git show v0.9 显示标签信息

$ git tag -a v0.1 -m "version 0.1 released" 3628164 -a 跟版本号,-m 跟注释说明 再跟ID

git push origin <tagname> 推送某标签到远程

git push origin --tags 推送所有为上传至远程的标签

删除远程标签:

(1) 先删除本地 :git tag -d + 标签名

(2) 再删除远程: git push origin :refs/tags/标签名

忽略特殊文件是的查看git status时不会每次提醒:在本地创建.gitignore文件,把要忽略的文件名填进去

配置别名:git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

Git 相关命令用法合集