前言
记录一下Git常用的命令,慢慢来学习。
配置
使用Git的第一件事就是将其配置好,其中需要配置“用户名”、“邮箱”、“创建SSH”
1. 配置用户名及邮箱
1 2
| git config --global user.name "Your Name" git config --global user.email "your_email@example.com"
|
为了记住用户名和邮箱我们还需要执行下面这个命令
1
| git config --global credential.helper store
|
2. 创建SSH
在命令行中输入这个命令
执行命令后需要进行3次或4次确认:
确认秘钥的保存路径(如果不需要改路径则直接回车)
如果上一步置顶的保存路径下已经有秘钥文件,则需要确认是否覆盖(如果之前的秘钥不再需要则直接回车覆盖,如需要则手动拷贝到其他目录后再覆盖)
创建密码(如果不需要密码则直接回车)
确认密码
3. 配置SSH
在指定的保存路径下会生成名为 id_rsa
和 id_rsa.pub
的两个文件。
右击 id_rsa.pub
文件,选择用记事本打开,复制里面的所有内容
然后登录Github,在右上角头像处选择 Setting
,然后选择 SSH and GPG keys
,点击 New SSH key
,在 Key
中粘贴刚刚复制的内容, Title
填写名称,单击 Add SSH key
。
至此,SSH就配置好了。
新建代码库
1 2 3 4 5 6 7 8
| git init
git init [project-name]
git clone [url]
|
增加/删除文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| git add [file1] [file2] ...
git add [dir]
git add .
git add -p
git rm [file1] [file2] ...
git rm --cached [file]
git mv [file-original] [file-renamed]
|
我一般就是直接添加所有文件到暂存区,代码如下
代码提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| git commit -m [message]
git commit [file1] [file2] ... -m [message]
git commit -a
git commit -v
git commit --amend -m [message]
git commit --amend [file1] [file2] ...
|
分支
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| git branch
git branch -r
git branch -a
git branch [branch-name]
git checkout -b [branch]
git branch [branch] [commit]
git branch --track [branch] [remote-branch]
git checkout [branch-name]
git checkout -
git branch --set-upstream [branch] [remote-branch]
git merge [branch]
git cherry-pick [commit]
git branch -d [branch-name]
git push origin --delete [branch-name] git branch -dr [remote/branch]
git push origin develop
git branch --set-upstream-to=origin/develop develop
|
标签
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| git tag
git tag [tag]
git tag [tag] [commit]
git tag -d [tag]
git push origin :refs/tags/[tagName]
git show [tag]
git push [remote] [tag]
git push [remote] --tags
git checkout -b [branch] [tag]
|
查看信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| git status
git log
git log --stat
git log -S [keyword]
git log [tag] HEAD --pretty=format:%s
git log [tag] HEAD --grep feature
git log --follow [file] git whatchanged [file]
git log -p [file]
git log -5 --pretty --oneline
git shortlog -sn
git blame [file]
git diff
git diff --cached [file]
git diff HEAD
git diff [first-branch]...[second-branch]
git diff --shortstat "@{0 day ago}"
git show [commit]
git show --name-only [commit]
git show [commit]:[filename]
git reflog git rebase [branch]
|
远程同步
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| git remote update --更新远程仓储
git fetch [remote]
git remote -v
git remote show [remote]
git remote add [shortname] [url]
git pull [remote] [branch]
git push [remote] [branch]
git push [remote] --force
git push [remote] --all
|
撤销
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| git checkout [file]
git checkout [commit] [file]
git checkout .
git reset [file]
git reset --hard
git reset [commit]
git reset --hard [commit]
git reset --keep [commit]
git revert [commit]
git stash git stash pop
|
其他(合并两个分支:Merge)
1. 将开发分支代码合入到master中
1 2 3 4 5
| git checkout dev git pull git checkout master git merge dev git push origin master
|
2. 将master的代码同步更新到开发分支中
merge方法:保证主干提交线干净(可以安全回溯)
1 2 3 4 5
| git checkout master git pull git checkout dev git merge master git pull origin dev
|