Git常用命令

  • 很久之前就把git大概过了一遍,用的少,一般也就简单的add commit push merge clone。猛然间看到了学长写的一篇git常用命令,觉得蛮不错的就转载过来了。
1. 基本命令

所有操作都在项目目录中进行。

1.全局设置用户名  
$ git config --global user.name "YourName"               
2.全局设置邮箱  
$ git config --global user.email "email@example.com"     
3.初始化仓库  
$ git init                                         
4.把文件添加到仓库  
$ git add
5.添加所有文件到仓库  
$ git add .
6.把所有文件提交到仓库  
$ git commit -m "comment message"
7.推送分支  
$ git push origin tagname
8.查看状态  
$ git status
9.查看文件修改的内容  
$ git diff filename
10.拉取更新  
$ git pull
2. 版本控制

1.查看历史记录  
$ git log
$ git reflog
2.回退版本  
$ git reset --hard HEAD^
$ git reset --hard 3628164
3.丢弃工作区修改  
$ git checkout -- filename
4.从版本库删除文件  
$ git rm test.txt
3. 远程仓库控制
1.关联远程苍库  
$ git remote add origin git@server-name:path/repo-name.git
2.关联后第一次推送  
$ git push -u origin master
3.克隆一个本地库  
$ git clone git@server-name:path/repo-name.git
4. 分支管理

1.查看分支  
$ git branch
2.查看所有分支(包括远程分支)  
$ git branch -a
3.切换分支  
$ git checout branchname
4.创建分支  
$ git branch name
5.创建+切换分支  
$ git checkout -b name
6.合并到某分支  
$ git merge name
7.删除分支  
$ git branch -d name
8.删除远程分支  
$ git push origin :delbranchname #origin后面一定要空一格
5. TAG标签
1.添加标签  
$ git tag name
2.查看标签  
$ git tag
3.推送标签  
$ git push origin tagname
4.删除本地标签  
$ git tag -d tagname
6. 技巧

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场.
$ git stash
$ git stash pop
如果有多个git帐号,比如github、gitcafe、coding等,同时三个帐号邮箱、用户名各不相同。此时可以先在~/.ssh/config 文件中设置,以使不同的帐号使用不同的密钥。
Host github  
    User git
    HostName github.com
    IdentitiesOnly yes
    IdentityFile ~/.ssh/github

Host gitcafe  
    User git
    HostName gitcafe.com
    IdentitiesOnly  yes
    IdentityFile ~/.ssh/gitcafe
    CheckHostIP yes
然后在不同的仓库目录里分别设置用户名和邮箱
$ git config user.name 'nailuoGG'
$ git config user.email 'nailuogg@gmail.com'
这样就可以在不同的项目中使用独立的用户名和邮箱,同时使用不同的推送密钥进行推送。

增量打包:

git archive -o update.zip HEAD $(git diff dbce55b...59b2e92 --name-only)  
7. 多人协作工作模式

查看远程库信息,使用git remote -v; 本地新建的分支如果不推送到远程,对其他人就是不可见的; 本地推送分支,需要先用git pull来抓取远程的新提交,然后才能够从本地推送分支。


# 先拉取远程的新提交,如果有冲突,需要先处理冲突
$ git pull
#本地推送名为branch-name的分支
$ git push origin branch-name
# 在本地创建和远程分支对应的分支,本地和远程分支名应当一致
$ git checkout -b branch-name origin/branch-name
# 建立本地分支和远程分支的关联
$ git branch --set-upstream branch-name origin/branch-name

kxind

性别:男. 敢于尝试 爱折腾的死宅程序猿. https://github.com/kxinds